...

Source file src/google.golang.org/api/servicenetworking/v1beta/servicenetworking-gen.go

Documentation: google.golang.org/api/servicenetworking/v1beta

     1  // Copyright 2024 Google LLC.
     2  // Use of this source code is governed by a BSD-style
     3  // license that can be found in the LICENSE file.
     4  
     5  // Code generated file. DO NOT EDIT.
     6  
     7  // Package servicenetworking provides access to the Service Networking API.
     8  //
     9  // For product documentation, see: https://cloud.google.com/service-infrastructure/docs/service-networking/getting-started
    10  //
    11  // # Library status
    12  //
    13  // These client libraries are officially supported by Google. However, this
    14  // library is considered complete and is in maintenance mode. This means
    15  // that we will address critical bugs and security issues but will not add
    16  // any new features.
    17  //
    18  // When possible, we recommend using our newer
    19  // [Cloud Client Libraries for Go](https://pkg.go.dev/cloud.google.com/go)
    20  // that are still actively being worked and iterated on.
    21  //
    22  // # Creating a client
    23  //
    24  // Usage example:
    25  //
    26  //	import "google.golang.org/api/servicenetworking/v1beta"
    27  //	...
    28  //	ctx := context.Background()
    29  //	servicenetworkingService, err := servicenetworking.NewService(ctx)
    30  //
    31  // In this example, Google Application Default Credentials are used for
    32  // authentication. For information on how to create and obtain Application
    33  // Default Credentials, see https://developers.google.com/identity/protocols/application-default-credentials.
    34  //
    35  // # Other authentication options
    36  //
    37  // By default, all available scopes (see "Constants") are used to authenticate.
    38  // To restrict scopes, use [google.golang.org/api/option.WithScopes]:
    39  //
    40  //	servicenetworkingService, err := servicenetworking.NewService(ctx, option.WithScopes(servicenetworking.ServiceManagementScope))
    41  //
    42  // To use an API key for authentication (note: some APIs do not support API
    43  // keys), use [google.golang.org/api/option.WithAPIKey]:
    44  //
    45  //	servicenetworkingService, err := servicenetworking.NewService(ctx, option.WithAPIKey("AIza..."))
    46  //
    47  // To use an OAuth token (e.g., a user token obtained via a three-legged OAuth
    48  // flow, use [google.golang.org/api/option.WithTokenSource]:
    49  //
    50  //	config := &oauth2.Config{...}
    51  //	// ...
    52  //	token, err := config.Exchange(ctx, ...)
    53  //	servicenetworkingService, err := servicenetworking.NewService(ctx, option.WithTokenSource(config.TokenSource(ctx, token)))
    54  //
    55  // See [google.golang.org/api/option.ClientOption] for details on options.
    56  package servicenetworking // import "google.golang.org/api/servicenetworking/v1beta"
    57  
    58  import (
    59  	"bytes"
    60  	"context"
    61  	"encoding/json"
    62  	"errors"
    63  	"fmt"
    64  	"io"
    65  	"net/http"
    66  	"net/url"
    67  	"strconv"
    68  	"strings"
    69  
    70  	googleapi "google.golang.org/api/googleapi"
    71  	internal "google.golang.org/api/internal"
    72  	gensupport "google.golang.org/api/internal/gensupport"
    73  	option "google.golang.org/api/option"
    74  	internaloption "google.golang.org/api/option/internaloption"
    75  	htransport "google.golang.org/api/transport/http"
    76  )
    77  
    78  // Always reference these packages, just in case the auto-generated code
    79  // below doesn't.
    80  var _ = bytes.NewBuffer
    81  var _ = strconv.Itoa
    82  var _ = fmt.Sprintf
    83  var _ = json.NewDecoder
    84  var _ = io.Copy
    85  var _ = url.Parse
    86  var _ = gensupport.MarshalJSON
    87  var _ = googleapi.Version
    88  var _ = errors.New
    89  var _ = strings.Replace
    90  var _ = context.Canceled
    91  var _ = internaloption.WithDefaultEndpoint
    92  var _ = internal.Version
    93  
    94  const apiId = "servicenetworking:v1beta"
    95  const apiName = "servicenetworking"
    96  const apiVersion = "v1beta"
    97  const basePath = "https://servicenetworking.googleapis.com/"
    98  const basePathTemplate = "https://servicenetworking.UNIVERSE_DOMAIN/"
    99  const mtlsBasePath = "https://servicenetworking.mtls.googleapis.com/"
   100  
   101  // OAuth2 scopes used by this API.
   102  const (
   103  	// See, edit, configure, and delete your Google Cloud data and see the email
   104  	// address for your Google Account.
   105  	CloudPlatformScope = "https://www.googleapis.com/auth/cloud-platform"
   106  
   107  	// Manage your Google API service configuration
   108  	ServiceManagementScope = "https://www.googleapis.com/auth/service.management"
   109  )
   110  
   111  // NewService creates a new APIService.
   112  func NewService(ctx context.Context, opts ...option.ClientOption) (*APIService, error) {
   113  	scopesOption := internaloption.WithDefaultScopes(
   114  		"https://www.googleapis.com/auth/cloud-platform",
   115  		"https://www.googleapis.com/auth/service.management",
   116  	)
   117  	// NOTE: prepend, so we don't override user-specified scopes.
   118  	opts = append([]option.ClientOption{scopesOption}, opts...)
   119  	opts = append(opts, internaloption.WithDefaultEndpoint(basePath))
   120  	opts = append(opts, internaloption.WithDefaultEndpointTemplate(basePathTemplate))
   121  	opts = append(opts, internaloption.WithDefaultMTLSEndpoint(mtlsBasePath))
   122  	opts = append(opts, internaloption.EnableNewAuthLibrary())
   123  	client, endpoint, err := htransport.NewClient(ctx, opts...)
   124  	if err != nil {
   125  		return nil, err
   126  	}
   127  	s, err := New(client)
   128  	if err != nil {
   129  		return nil, err
   130  	}
   131  	if endpoint != "" {
   132  		s.BasePath = endpoint
   133  	}
   134  	return s, nil
   135  }
   136  
   137  // New creates a new APIService. It uses the provided http.Client for requests.
   138  //
   139  // Deprecated: please use NewService instead.
   140  // To provide a custom HTTP client, use option.WithHTTPClient.
   141  // If you are using google.golang.org/api/googleapis/transport.APIKey, use option.WithAPIKey with NewService instead.
   142  func New(client *http.Client) (*APIService, error) {
   143  	if client == nil {
   144  		return nil, errors.New("client is nil")
   145  	}
   146  	s := &APIService{client: client, BasePath: basePath}
   147  	s.Operations = NewOperationsService(s)
   148  	s.Services = NewServicesService(s)
   149  	return s, nil
   150  }
   151  
   152  type APIService struct {
   153  	client    *http.Client
   154  	BasePath  string // API endpoint base URL
   155  	UserAgent string // optional additional User-Agent fragment
   156  
   157  	Operations *OperationsService
   158  
   159  	Services *ServicesService
   160  }
   161  
   162  func (s *APIService) userAgent() string {
   163  	if s.UserAgent == "" {
   164  		return googleapi.UserAgent
   165  	}
   166  	return googleapi.UserAgent + " " + s.UserAgent
   167  }
   168  
   169  func NewOperationsService(s *APIService) *OperationsService {
   170  	rs := &OperationsService{s: s}
   171  	return rs
   172  }
   173  
   174  type OperationsService struct {
   175  	s *APIService
   176  }
   177  
   178  func NewServicesService(s *APIService) *ServicesService {
   179  	rs := &ServicesService{s: s}
   180  	rs.Connections = NewServicesConnectionsService(s)
   181  	return rs
   182  }
   183  
   184  type ServicesService struct {
   185  	s *APIService
   186  
   187  	Connections *ServicesConnectionsService
   188  }
   189  
   190  func NewServicesConnectionsService(s *APIService) *ServicesConnectionsService {
   191  	rs := &ServicesConnectionsService{s: s}
   192  	return rs
   193  }
   194  
   195  type ServicesConnectionsService struct {
   196  	s *APIService
   197  }
   198  
   199  // AddDnsRecordSetMetadata: Metadata provided through GetOperation request for
   200  // the LRO generated by AddDnsRecordSet API
   201  type AddDnsRecordSetMetadata struct {
   202  }
   203  
   204  // AddDnsZoneMetadata: Metadata provided through GetOperation request for the
   205  // LRO generated by AddDnsZone API
   206  type AddDnsZoneMetadata struct {
   207  }
   208  
   209  // AddDnsZoneResponse: Represents managed DNS zones created in the shared
   210  // producer host and consumer projects.
   211  type AddDnsZoneResponse struct {
   212  	// ConsumerPeeringZone: The DNS peering zone created in the consumer project.
   213  	ConsumerPeeringZone *DnsZone `json:"consumerPeeringZone,omitempty"`
   214  	// ProducerPrivateZone: The private DNS zone created in the shared producer
   215  	// host project.
   216  	ProducerPrivateZone *DnsZone `json:"producerPrivateZone,omitempty"`
   217  	// ForceSendFields is a list of field names (e.g. "ConsumerPeeringZone") to
   218  	// unconditionally include in API requests. By default, fields with empty or
   219  	// default values are omitted from API requests. See
   220  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
   221  	// details.
   222  	ForceSendFields []string `json:"-"`
   223  	// NullFields is a list of field names (e.g. "ConsumerPeeringZone") to include
   224  	// in API requests with the JSON null value. By default, fields with empty
   225  	// values are omitted from API requests. See
   226  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
   227  	NullFields []string `json:"-"`
   228  }
   229  
   230  func (s *AddDnsZoneResponse) MarshalJSON() ([]byte, error) {
   231  	type NoMethod AddDnsZoneResponse
   232  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
   233  }
   234  
   235  // AddRolesMetadata: Metadata provided through GetOperation request for the LRO
   236  // generated by AddRoles API
   237  type AddRolesMetadata struct {
   238  }
   239  
   240  // AddRolesResponse: Represents IAM roles added to the shared VPC host project.
   241  type AddRolesResponse struct {
   242  	// PolicyBinding: Required. List of policy bindings that were added to the
   243  	// shared VPC host project.
   244  	PolicyBinding []*PolicyBinding `json:"policyBinding,omitempty"`
   245  	// ForceSendFields is a list of field names (e.g. "PolicyBinding") to
   246  	// unconditionally include in API requests. By default, fields with empty or
   247  	// default values are omitted from API requests. See
   248  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
   249  	// details.
   250  	ForceSendFields []string `json:"-"`
   251  	// NullFields is a list of field names (e.g. "PolicyBinding") to include in API
   252  	// requests with the JSON null value. By default, fields with empty values are
   253  	// omitted from API requests. See
   254  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
   255  	NullFields []string `json:"-"`
   256  }
   257  
   258  func (s *AddRolesResponse) MarshalJSON() ([]byte, error) {
   259  	type NoMethod AddRolesResponse
   260  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
   261  }
   262  
   263  // AddSubnetworkRequest: Request to create a subnetwork in a previously peered
   264  // service network.
   265  type AddSubnetworkRequest struct {
   266  	// Consumer: Required. A resource that represents the service consumer, such as
   267  	// `projects/123456`. The project number can be different from the value in the
   268  	// consumer network parameter. For example, the network might be part of a
   269  	// Shared VPC network. In those cases, Service Networking validates that this
   270  	// resource belongs to that Shared VPC.
   271  	Consumer string `json:"consumer,omitempty"`
   272  	// ConsumerNetwork: Required. The name of the service consumer's VPC network.
   273  	// The network must have an existing private connection that was provisioned
   274  	// through the connections.create method. The name must be in the following
   275  	// format: `projects/{project}/global/networks/{network}`, where {project} is a
   276  	// project number, such as `12345`. {network} is the name of a VPC network in
   277  	// the project.
   278  	ConsumerNetwork string `json:"consumerNetwork,omitempty"`
   279  	// Description: An optional description of the subnet.
   280  	Description string `json:"description,omitempty"`
   281  	// IpPrefixLength: Required. The prefix length of the subnet's IP address
   282  	// range. Use CIDR range notation, such as `30` to provision a subnet with an
   283  	// `x.x.x.x/30` CIDR range. The IP address range is drawn from a pool of
   284  	// available ranges in the service consumer's allocated range.
   285  	IpPrefixLength int64 `json:"ipPrefixLength,omitempty"`
   286  	// Region: Required. The name of a region (/compute/docs/regions-zones) for the
   287  	// subnet, such `europe-west1`.
   288  	Region string `json:"region,omitempty"`
   289  	// RequestedAddress: Optional. The starting address of a range. The address
   290  	// must be a valid IPv4 address in the x.x.x.x format. This value combined with
   291  	// the IP prefix range is the CIDR range for the subnet. The range must be
   292  	// within the allocated range that is assigned to the private connection. If
   293  	// the CIDR range isn't available, the call fails.
   294  	RequestedAddress string `json:"requestedAddress,omitempty"`
   295  	// Subnetwork: Required. A name for the new subnet. For information about the
   296  	// naming requirements, see subnetwork
   297  	// (/compute/docs/reference/rest/v1/subnetworks) in the Compute API
   298  	// documentation.
   299  	Subnetwork string `json:"subnetwork,omitempty"`
   300  	// SubnetworkUsers: A list of members that are granted the
   301  	// `compute.networkUser` role on the subnet.
   302  	SubnetworkUsers []string `json:"subnetworkUsers,omitempty"`
   303  	// ForceSendFields is a list of field names (e.g. "Consumer") to
   304  	// unconditionally include in API requests. By default, fields with empty or
   305  	// default values are omitted from API requests. See
   306  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
   307  	// details.
   308  	ForceSendFields []string `json:"-"`
   309  	// NullFields is a list of field names (e.g. "Consumer") to include in API
   310  	// requests with the JSON null value. By default, fields with empty values are
   311  	// omitted from API requests. See
   312  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
   313  	NullFields []string `json:"-"`
   314  }
   315  
   316  func (s *AddSubnetworkRequest) MarshalJSON() ([]byte, error) {
   317  	type NoMethod AddSubnetworkRequest
   318  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
   319  }
   320  
   321  // Api: Api is a light-weight descriptor for an API Interface. Interfaces are
   322  // also described as "protocol buffer services" in some contexts, such as by
   323  // the "service" keyword in a .proto file, but they are different from API
   324  // Services, which represent a concrete implementation of an interface as
   325  // opposed to simply a description of methods and bindings. They are also
   326  // sometimes simply referred to as "APIs" in other contexts, such as the name
   327  // of this message itself. See https://cloud.google.com/apis/design/glossary
   328  // for detailed terminology.
   329  type Api struct {
   330  	// Methods: The methods of this interface, in unspecified order.
   331  	Methods []*Method `json:"methods,omitempty"`
   332  	// Mixins: Included interfaces. See Mixin.
   333  	Mixins []*Mixin `json:"mixins,omitempty"`
   334  	// Name: The fully qualified name of this interface, including package name
   335  	// followed by the interface's simple name.
   336  	Name string `json:"name,omitempty"`
   337  	// Options: Any metadata attached to the interface.
   338  	Options []*Option `json:"options,omitempty"`
   339  	// SourceContext: Source context for the protocol buffer service represented by
   340  	// this message.
   341  	SourceContext *SourceContext `json:"sourceContext,omitempty"`
   342  	// Syntax: The source syntax of the service.
   343  	//
   344  	// Possible values:
   345  	//   "SYNTAX_PROTO2" - Syntax `proto2`.
   346  	//   "SYNTAX_PROTO3" - Syntax `proto3`.
   347  	//   "SYNTAX_EDITIONS" - Syntax `editions`.
   348  	Syntax string `json:"syntax,omitempty"`
   349  	// Version: A version string for this interface. If specified, must have the
   350  	// form `major-version.minor-version`, as in `1.10`. If the minor version is
   351  	// omitted, it defaults to zero. If the entire version field is empty, the
   352  	// major version is derived from the package name, as outlined below. If the
   353  	// field is not empty, the version in the package name will be verified to be
   354  	// consistent with what is provided here. The versioning schema uses semantic
   355  	// versioning (http://semver.org) where the major version number indicates a
   356  	// breaking change and the minor version an additive, non-breaking change. Both
   357  	// version numbers are signals to users what to expect from different versions,
   358  	// and should be carefully chosen based on the product plan. The major version
   359  	// is also reflected in the package name of the interface, which must end in
   360  	// `v`, as in `google.feature.v1`. For major versions 0 and 1, the suffix can
   361  	// be omitted. Zero major versions must only be used for experimental, non-GA
   362  	// interfaces.
   363  	Version string `json:"version,omitempty"`
   364  	// ForceSendFields is a list of field names (e.g. "Methods") to unconditionally
   365  	// include in API requests. By default, fields with empty or default values are
   366  	// omitted from API requests. See
   367  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
   368  	// details.
   369  	ForceSendFields []string `json:"-"`
   370  	// NullFields is a list of field names (e.g. "Methods") to include in API
   371  	// requests with the JSON null value. By default, fields with empty values are
   372  	// omitted from API requests. See
   373  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
   374  	NullFields []string `json:"-"`
   375  }
   376  
   377  func (s *Api) MarshalJSON() ([]byte, error) {
   378  	type NoMethod Api
   379  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
   380  }
   381  
   382  // AuthProvider: Configuration for an authentication provider, including
   383  // support for JSON Web Token (JWT)
   384  // (https://tools.ietf.org/html/draft-ietf-oauth-json-web-token-32).
   385  type AuthProvider struct {
   386  	// Audiences: The list of JWT audiences
   387  	// (https://tools.ietf.org/html/draft-ietf-oauth-json-web-token-32#section-4.1.3).
   388  	// that are allowed to access. A JWT containing any of these audiences will be
   389  	// accepted. When this setting is absent, JWTs with audiences: -
   390  	// "https://[service.name]/[google.protobuf.Api.name]" -
   391  	// "https://[service.name]/" will be accepted. For example, if no audiences are
   392  	// in the setting, LibraryService API will accept JWTs with the following
   393  	// audiences: -
   394  	// https://library-example.googleapis.com/google.example.library.v1.LibraryService
   395  	// - https://library-example.googleapis.com/ Example: audiences:
   396  	// bookstore_android.apps.googleusercontent.com,
   397  	// bookstore_web.apps.googleusercontent.com
   398  	Audiences string `json:"audiences,omitempty"`
   399  	// AuthorizationUrl: Redirect URL if JWT token is required but not present or
   400  	// is expired. Implement authorizationUrl of securityDefinitions in OpenAPI
   401  	// spec.
   402  	AuthorizationUrl string `json:"authorizationUrl,omitempty"`
   403  	// Id: The unique identifier of the auth provider. It will be referred to by
   404  	// `AuthRequirement.provider_id`. Example: "bookstore_auth".
   405  	Id string `json:"id,omitempty"`
   406  	// Issuer: Identifies the principal that issued the JWT. See
   407  	// https://tools.ietf.org/html/draft-ietf-oauth-json-web-token-32#section-4.1.1
   408  	// Usually a URL or an email address. Example: https://securetoken.google.com
   409  	// Example: 1234567-compute@developer.gserviceaccount.com
   410  	Issuer string `json:"issuer,omitempty"`
   411  	// JwksUri: URL of the provider's public key set to validate signature of the
   412  	// JWT. See OpenID Discovery
   413  	// (https://openid.net/specs/openid-connect-discovery-1_0.html#ProviderMetadata).
   414  	// Optional if the key set document: - can be retrieved from OpenID Discovery
   415  	// (https://openid.net/specs/openid-connect-discovery-1_0.html) of the issuer.
   416  	// - can be inferred from the email domain of the issuer (e.g. a Google service
   417  	// account). Example: https://www.googleapis.com/oauth2/v1/certs
   418  	JwksUri string `json:"jwksUri,omitempty"`
   419  	// JwtLocations: Defines the locations to extract the JWT. For now it is only
   420  	// used by the Cloud Endpoints to store the OpenAPI extension
   421  	// [x-google-jwt-locations]
   422  	// (https://cloud.google.com/endpoints/docs/openapi/openapi-extensions#x-google-jwt-locations)
   423  	// JWT locations can be one of HTTP headers, URL query parameters or cookies.
   424  	// The rule is that the first match wins. If not specified, default to use
   425  	// following 3 locations: 1) Authorization: Bearer 2) x-goog-iap-jwt-assertion
   426  	// 3) access_token query parameter Default locations can be specified as
   427  	// followings: jwt_locations: - header: Authorization value_prefix: "Bearer " -
   428  	// header: x-goog-iap-jwt-assertion - query: access_token
   429  	JwtLocations []*JwtLocation `json:"jwtLocations,omitempty"`
   430  	// ForceSendFields is a list of field names (e.g. "Audiences") to
   431  	// unconditionally include in API requests. By default, fields with empty or
   432  	// default values are omitted from API requests. See
   433  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
   434  	// details.
   435  	ForceSendFields []string `json:"-"`
   436  	// NullFields is a list of field names (e.g. "Audiences") to include in API
   437  	// requests with the JSON null value. By default, fields with empty values are
   438  	// omitted from API requests. See
   439  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
   440  	NullFields []string `json:"-"`
   441  }
   442  
   443  func (s *AuthProvider) MarshalJSON() ([]byte, error) {
   444  	type NoMethod AuthProvider
   445  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
   446  }
   447  
   448  // AuthRequirement: User-defined authentication requirements, including support
   449  // for JSON Web Token (JWT)
   450  // (https://tools.ietf.org/html/draft-ietf-oauth-json-web-token-32).
   451  type AuthRequirement struct {
   452  	// Audiences: NOTE: This will be deprecated soon, once AuthProvider.audiences
   453  	// is implemented and accepted in all the runtime components. The list of JWT
   454  	// audiences
   455  	// (https://tools.ietf.org/html/draft-ietf-oauth-json-web-token-32#section-4.1.3).
   456  	// that are allowed to access. A JWT containing any of these audiences will be
   457  	// accepted. When this setting is absent, only JWTs with audience
   458  	// "https://Service_name/API_name" will be accepted. For example, if no
   459  	// audiences are in the setting, LibraryService API will only accept JWTs with
   460  	// the following audience
   461  	// "https://library-example.googleapis.com/google.example.library.v1.LibraryServ
   462  	// ice". Example: audiences: bookstore_android.apps.googleusercontent.com,
   463  	// bookstore_web.apps.googleusercontent.com
   464  	Audiences string `json:"audiences,omitempty"`
   465  	// ProviderId: id from authentication provider. Example: provider_id:
   466  	// bookstore_auth
   467  	ProviderId string `json:"providerId,omitempty"`
   468  	// ForceSendFields is a list of field names (e.g. "Audiences") to
   469  	// unconditionally include in API requests. By default, fields with empty or
   470  	// default values are omitted from API requests. See
   471  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
   472  	// details.
   473  	ForceSendFields []string `json:"-"`
   474  	// NullFields is a list of field names (e.g. "Audiences") to include in API
   475  	// requests with the JSON null value. By default, fields with empty values are
   476  	// omitted from API requests. See
   477  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
   478  	NullFields []string `json:"-"`
   479  }
   480  
   481  func (s *AuthRequirement) MarshalJSON() ([]byte, error) {
   482  	type NoMethod AuthRequirement
   483  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
   484  }
   485  
   486  // Authentication: `Authentication` defines the authentication configuration
   487  // for API methods provided by an API service. Example: name:
   488  // calendar.googleapis.com authentication: providers: - id:
   489  // google_calendar_auth jwks_uri: https://www.googleapis.com/oauth2/v1/certs
   490  // issuer: https://securetoken.google.com rules: - selector: "*" requirements:
   491  // provider_id: google_calendar_auth - selector: google.calendar.Delegate
   492  // oauth: canonical_scopes: https://www.googleapis.com/auth/calendar.read
   493  type Authentication struct {
   494  	// Providers: Defines a set of authentication providers that a service
   495  	// supports.
   496  	Providers []*AuthProvider `json:"providers,omitempty"`
   497  	// Rules: A list of authentication rules that apply to individual API methods.
   498  	// **NOTE:** All service configuration rules follow "last one wins" order.
   499  	Rules []*AuthenticationRule `json:"rules,omitempty"`
   500  	// ForceSendFields is a list of field names (e.g. "Providers") to
   501  	// unconditionally include in API requests. By default, fields with empty or
   502  	// default values are omitted from API requests. See
   503  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
   504  	// details.
   505  	ForceSendFields []string `json:"-"`
   506  	// NullFields is a list of field names (e.g. "Providers") to include in API
   507  	// requests with the JSON null value. By default, fields with empty values are
   508  	// omitted from API requests. See
   509  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
   510  	NullFields []string `json:"-"`
   511  }
   512  
   513  func (s *Authentication) MarshalJSON() ([]byte, error) {
   514  	type NoMethod Authentication
   515  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
   516  }
   517  
   518  // AuthenticationRule: Authentication rules for the service. By default, if a
   519  // method has any authentication requirements, every request must include a
   520  // valid credential matching one of the requirements. It's an error to include
   521  // more than one kind of credential in a single request. If a method doesn't
   522  // have any auth requirements, request credentials will be ignored.
   523  type AuthenticationRule struct {
   524  	// AllowWithoutCredential: If true, the service accepts API keys without any
   525  	// other credential. This flag only applies to HTTP and gRPC requests.
   526  	AllowWithoutCredential bool `json:"allowWithoutCredential,omitempty"`
   527  	// Oauth: The requirements for OAuth credentials.
   528  	Oauth *OAuthRequirements `json:"oauth,omitempty"`
   529  	// Requirements: Requirements for additional authentication providers.
   530  	Requirements []*AuthRequirement `json:"requirements,omitempty"`
   531  	// Selector: Selects the methods to which this rule applies. Refer to selector
   532  	// for syntax details.
   533  	Selector string `json:"selector,omitempty"`
   534  	// ForceSendFields is a list of field names (e.g. "AllowWithoutCredential") to
   535  	// unconditionally include in API requests. By default, fields with empty or
   536  	// default values are omitted from API requests. See
   537  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
   538  	// details.
   539  	ForceSendFields []string `json:"-"`
   540  	// NullFields is a list of field names (e.g. "AllowWithoutCredential") to
   541  	// include in API requests with the JSON null value. By default, fields with
   542  	// empty values are omitted from API requests. See
   543  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
   544  	NullFields []string `json:"-"`
   545  }
   546  
   547  func (s *AuthenticationRule) MarshalJSON() ([]byte, error) {
   548  	type NoMethod AuthenticationRule
   549  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
   550  }
   551  
   552  // Backend: `Backend` defines the backend configuration for a service.
   553  type Backend struct {
   554  	// Rules: A list of API backend rules that apply to individual API methods.
   555  	// **NOTE:** All service configuration rules follow "last one wins" order.
   556  	Rules []*BackendRule `json:"rules,omitempty"`
   557  	// ForceSendFields is a list of field names (e.g. "Rules") to unconditionally
   558  	// include in API requests. By default, fields with empty or default values are
   559  	// omitted from API requests. See
   560  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
   561  	// details.
   562  	ForceSendFields []string `json:"-"`
   563  	// NullFields is a list of field names (e.g. "Rules") to include in API
   564  	// requests with the JSON null value. By default, fields with empty values are
   565  	// omitted from API requests. See
   566  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
   567  	NullFields []string `json:"-"`
   568  }
   569  
   570  func (s *Backend) MarshalJSON() ([]byte, error) {
   571  	type NoMethod Backend
   572  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
   573  }
   574  
   575  // BackendRule: A backend rule provides configuration for an individual API
   576  // element.
   577  type BackendRule struct {
   578  	// Address: The address of the API backend. The scheme is used to determine the
   579  	// backend protocol and security. The following schemes are accepted: SCHEME
   580  	// PROTOCOL SECURITY http:// HTTP None https:// HTTP TLS grpc:// gRPC None
   581  	// grpcs:// gRPC TLS It is recommended to explicitly include a scheme. Leaving
   582  	// out the scheme may cause constrasting behaviors across platforms. If the
   583  	// port is unspecified, the default is: - 80 for schemes without TLS - 443 for
   584  	// schemes with TLS For HTTP backends, use protocol to specify the protocol
   585  	// version.
   586  	Address string `json:"address,omitempty"`
   587  	// Deadline: The number of seconds to wait for a response from a request. The
   588  	// default varies based on the request protocol and deployment environment.
   589  	Deadline float64 `json:"deadline,omitempty"`
   590  	// DisableAuth: When disable_auth is true, a JWT ID token won't be generated
   591  	// and the original "Authorization" HTTP header will be preserved. If the
   592  	// header is used to carry the original token and is expected by the backend,
   593  	// this field must be set to true to preserve the header.
   594  	DisableAuth bool `json:"disableAuth,omitempty"`
   595  	// JwtAudience: The JWT audience is used when generating a JWT ID token for the
   596  	// backend. This ID token will be added in the HTTP "authorization" header, and
   597  	// sent to the backend.
   598  	JwtAudience string `json:"jwtAudience,omitempty"`
   599  	// MinDeadline: Deprecated, do not use.
   600  	MinDeadline float64 `json:"minDeadline,omitempty"`
   601  	// OperationDeadline: The number of seconds to wait for the completion of a
   602  	// long running operation. The default is no deadline.
   603  	OperationDeadline float64 `json:"operationDeadline,omitempty"`
   604  	// OverridesByRequestProtocol: The map between request protocol and the backend
   605  	// address.
   606  	OverridesByRequestProtocol map[string]BackendRule `json:"overridesByRequestProtocol,omitempty"`
   607  	// Possible values:
   608  	//   "PATH_TRANSLATION_UNSPECIFIED"
   609  	//   "CONSTANT_ADDRESS" - Use the backend address as-is, with no modification
   610  	// to the path. If the URL pattern contains variables, the variable names and
   611  	// values will be appended to the query string. If a query string parameter and
   612  	// a URL pattern variable have the same name, this may result in duplicate keys
   613  	// in the query string. # Examples Given the following operation config: Method
   614  	// path: /api/company/{cid}/user/{uid} Backend address:
   615  	// https://example.cloudfunctions.net/getUser Requests to the following request
   616  	// paths will call the backend at the translated path: Request path:
   617  	// /api/company/widgetworks/user/johndoe Translated:
   618  	// https://example.cloudfunctions.net/getUser?cid=widgetworks&uid=johndoe
   619  	// Request path: /api/company/widgetworks/user/johndoe?timezone=EST Translated:
   620  	// https://example.cloudfunctions.net/getUser?timezone=EST&cid=widgetworks&uid=johndoe
   621  	//   "APPEND_PATH_TO_ADDRESS" - The request path will be appended to the
   622  	// backend address. # Examples Given the following operation config: Method
   623  	// path: /api/company/{cid}/user/{uid} Backend address:
   624  	// https://example.appspot.com Requests to the following request paths will
   625  	// call the backend at the translated path: Request path:
   626  	// /api/company/widgetworks/user/johndoe Translated:
   627  	// https://example.appspot.com/api/company/widgetworks/user/johndoe Request
   628  	// path: /api/company/widgetworks/user/johndoe?timezone=EST Translated:
   629  	// https://example.appspot.com/api/company/widgetworks/user/johndoe?timezone=EST
   630  	PathTranslation string `json:"pathTranslation,omitempty"`
   631  	// Protocol: The protocol used for sending a request to the backend. The
   632  	// supported values are "http/1.1" and "h2". The default value is inferred from
   633  	// the scheme in the address field: SCHEME PROTOCOL http:// http/1.1 https://
   634  	// http/1.1 grpc:// h2 grpcs:// h2 For secure HTTP backends (https://) that
   635  	// support HTTP/2, set this field to "h2" for improved performance. Configuring
   636  	// this field to non-default values is only supported for secure HTTP backends.
   637  	// This field will be ignored for all other backends. See
   638  	// https://www.iana.org/assignments/tls-extensiontype-values/tls-extensiontype-values.xhtml#alpn-protocol-ids
   639  	// for more details on the supported values.
   640  	Protocol string `json:"protocol,omitempty"`
   641  	// Selector: Selects the methods to which this rule applies. Refer to selector
   642  	// for syntax details.
   643  	Selector string `json:"selector,omitempty"`
   644  	// ForceSendFields is a list of field names (e.g. "Address") to unconditionally
   645  	// include in API requests. By default, fields with empty or default values are
   646  	// omitted from API requests. See
   647  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
   648  	// details.
   649  	ForceSendFields []string `json:"-"`
   650  	// NullFields is a list of field names (e.g. "Address") to include in API
   651  	// requests with the JSON null value. By default, fields with empty values are
   652  	// omitted from API requests. See
   653  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
   654  	NullFields []string `json:"-"`
   655  }
   656  
   657  func (s *BackendRule) MarshalJSON() ([]byte, error) {
   658  	type NoMethod BackendRule
   659  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
   660  }
   661  
   662  func (s *BackendRule) UnmarshalJSON(data []byte) error {
   663  	type NoMethod BackendRule
   664  	var s1 struct {
   665  		Deadline          gensupport.JSONFloat64 `json:"deadline"`
   666  		MinDeadline       gensupport.JSONFloat64 `json:"minDeadline"`
   667  		OperationDeadline gensupport.JSONFloat64 `json:"operationDeadline"`
   668  		*NoMethod
   669  	}
   670  	s1.NoMethod = (*NoMethod)(s)
   671  	if err := json.Unmarshal(data, &s1); err != nil {
   672  		return err
   673  	}
   674  	s.Deadline = float64(s1.Deadline)
   675  	s.MinDeadline = float64(s1.MinDeadline)
   676  	s.OperationDeadline = float64(s1.OperationDeadline)
   677  	return nil
   678  }
   679  
   680  // Billing: Billing related configuration of the service. The following example
   681  // shows how to configure monitored resources and metrics for billing,
   682  // `consumer_destinations` is the only supported destination and the monitored
   683  // resources need at least one label key `cloud.googleapis.com/location` to
   684  // indicate the location of the billing usage, using different monitored
   685  // resources between monitoring and billing is recommended so they can be
   686  // evolved independently: monitored_resources: - type:
   687  // library.googleapis.com/billing_branch labels: - key:
   688  // cloud.googleapis.com/location description: | Predefined label to support
   689  // billing location restriction. - key: city description: | Custom label to
   690  // define the city where the library branch is located in. - key: name
   691  // description: Custom label to define the name of the library branch. metrics:
   692  // - name: library.googleapis.com/book/borrowed_count metric_kind: DELTA
   693  // value_type: INT64 unit: "1" billing: consumer_destinations: -
   694  // monitored_resource: library.googleapis.com/billing_branch metrics: -
   695  // library.googleapis.com/book/borrowed_count
   696  type Billing struct {
   697  	// ConsumerDestinations: Billing configurations for sending metrics to the
   698  	// consumer project. There can be multiple consumer destinations per service,
   699  	// each one must have a different monitored resource type. A metric can be used
   700  	// in at most one consumer destination.
   701  	ConsumerDestinations []*BillingDestination `json:"consumerDestinations,omitempty"`
   702  	// ForceSendFields is a list of field names (e.g. "ConsumerDestinations") to
   703  	// unconditionally include in API requests. By default, fields with empty or
   704  	// default values are omitted from API requests. See
   705  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
   706  	// details.
   707  	ForceSendFields []string `json:"-"`
   708  	// NullFields is a list of field names (e.g. "ConsumerDestinations") to include
   709  	// in API requests with the JSON null value. By default, fields with empty
   710  	// values are omitted from API requests. See
   711  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
   712  	NullFields []string `json:"-"`
   713  }
   714  
   715  func (s *Billing) MarshalJSON() ([]byte, error) {
   716  	type NoMethod Billing
   717  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
   718  }
   719  
   720  // BillingDestination: Configuration of a specific billing destination
   721  // (Currently only support bill against consumer project).
   722  type BillingDestination struct {
   723  	// Metrics: Names of the metrics to report to this billing destination. Each
   724  	// name must be defined in Service.metrics section.
   725  	Metrics []string `json:"metrics,omitempty"`
   726  	// MonitoredResource: The monitored resource type. The type must be defined in
   727  	// Service.monitored_resources section.
   728  	MonitoredResource string `json:"monitoredResource,omitempty"`
   729  	// ForceSendFields is a list of field names (e.g. "Metrics") to unconditionally
   730  	// include in API requests. By default, fields with empty or default values are
   731  	// omitted from API requests. See
   732  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
   733  	// details.
   734  	ForceSendFields []string `json:"-"`
   735  	// NullFields is a list of field names (e.g. "Metrics") to include in API
   736  	// requests with the JSON null value. By default, fields with empty values are
   737  	// omitted from API requests. See
   738  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
   739  	NullFields []string `json:"-"`
   740  }
   741  
   742  func (s *BillingDestination) MarshalJSON() ([]byte, error) {
   743  	type NoMethod BillingDestination
   744  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
   745  }
   746  
   747  // ClientLibrarySettings: Details about how and where to publish client
   748  // libraries.
   749  type ClientLibrarySettings struct {
   750  	// CppSettings: Settings for C++ client libraries.
   751  	CppSettings *CppSettings `json:"cppSettings,omitempty"`
   752  	// DotnetSettings: Settings for .NET client libraries.
   753  	DotnetSettings *DotnetSettings `json:"dotnetSettings,omitempty"`
   754  	// GoSettings: Settings for Go client libraries.
   755  	GoSettings *GoSettings `json:"goSettings,omitempty"`
   756  	// JavaSettings: Settings for legacy Java features, supported in the Service
   757  	// YAML.
   758  	JavaSettings *JavaSettings `json:"javaSettings,omitempty"`
   759  	// LaunchStage: Launch stage of this version of the API.
   760  	//
   761  	// Possible values:
   762  	//   "LAUNCH_STAGE_UNSPECIFIED" - Do not use this default value.
   763  	//   "UNIMPLEMENTED" - The feature is not yet implemented. Users can not use
   764  	// it.
   765  	//   "PRELAUNCH" - Prelaunch features are hidden from users and are only
   766  	// visible internally.
   767  	//   "EARLY_ACCESS" - Early Access features are limited to a closed group of
   768  	// testers. To use these features, you must sign up in advance and sign a
   769  	// Trusted Tester agreement (which includes confidentiality provisions). These
   770  	// features may be unstable, changed in backward-incompatible ways, and are not
   771  	// guaranteed to be released.
   772  	//   "ALPHA" - Alpha is a limited availability test for releases before they
   773  	// are cleared for widespread use. By Alpha, all significant design issues are
   774  	// resolved and we are in the process of verifying functionality. Alpha
   775  	// customers need to apply for access, agree to applicable terms, and have
   776  	// their projects allowlisted. Alpha releases don't have to be feature
   777  	// complete, no SLAs are provided, and there are no technical support
   778  	// obligations, but they will be far enough along that customers can actually
   779  	// use them in test environments or for limited-use tests -- just like they
   780  	// would in normal production cases.
   781  	//   "BETA" - Beta is the point at which we are ready to open a release for any
   782  	// customer to use. There are no SLA or technical support obligations in a Beta
   783  	// release. Products will be complete from a feature perspective, but may have
   784  	// some open outstanding issues. Beta releases are suitable for limited
   785  	// production use cases.
   786  	//   "GA" - GA features are open to all developers and are considered stable
   787  	// and fully qualified for production use.
   788  	//   "DEPRECATED" - Deprecated features are scheduled to be shut down and
   789  	// removed. For more information, see the "Deprecation Policy" section of our
   790  	// [Terms of Service](https://cloud.google.com/terms/) and the [Google Cloud
   791  	// Platform Subject to the Deprecation
   792  	// Policy](https://cloud.google.com/terms/deprecation) documentation.
   793  	LaunchStage string `json:"launchStage,omitempty"`
   794  	// NodeSettings: Settings for Node client libraries.
   795  	NodeSettings *NodeSettings `json:"nodeSettings,omitempty"`
   796  	// PhpSettings: Settings for PHP client libraries.
   797  	PhpSettings *PhpSettings `json:"phpSettings,omitempty"`
   798  	// PythonSettings: Settings for Python client libraries.
   799  	PythonSettings *PythonSettings `json:"pythonSettings,omitempty"`
   800  	// RestNumericEnums: When using transport=rest, the client request will encode
   801  	// enums as numbers rather than strings.
   802  	RestNumericEnums bool `json:"restNumericEnums,omitempty"`
   803  	// RubySettings: Settings for Ruby client libraries.
   804  	RubySettings *RubySettings `json:"rubySettings,omitempty"`
   805  	// Version: Version of the API to apply these settings to. This is the full
   806  	// protobuf package for the API, ending in the version element. Examples:
   807  	// "google.cloud.speech.v1" and "google.spanner.admin.database.v1".
   808  	Version string `json:"version,omitempty"`
   809  	// ForceSendFields is a list of field names (e.g. "CppSettings") to
   810  	// unconditionally include in API requests. By default, fields with empty or
   811  	// default values are omitted from API requests. See
   812  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
   813  	// details.
   814  	ForceSendFields []string `json:"-"`
   815  	// NullFields is a list of field names (e.g. "CppSettings") to include in API
   816  	// requests with the JSON null value. By default, fields with empty values are
   817  	// omitted from API requests. See
   818  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
   819  	NullFields []string `json:"-"`
   820  }
   821  
   822  func (s *ClientLibrarySettings) MarshalJSON() ([]byte, error) {
   823  	type NoMethod ClientLibrarySettings
   824  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
   825  }
   826  
   827  // CloudSQLConfig: Cloud SQL configuration.
   828  type CloudSQLConfig struct {
   829  	// Service: Peering service used for peering with the Cloud SQL project.
   830  	Service string `json:"service,omitempty"`
   831  	// UmbrellaNetwork: The name of the umbrella network in the Cloud SQL umbrella
   832  	// project.
   833  	UmbrellaNetwork string `json:"umbrellaNetwork,omitempty"`
   834  	// UmbrellaProject: The project number of the Cloud SQL umbrella project.
   835  	UmbrellaProject int64 `json:"umbrellaProject,omitempty,string"`
   836  	// ForceSendFields is a list of field names (e.g. "Service") to unconditionally
   837  	// include in API requests. By default, fields with empty or default values are
   838  	// omitted from API requests. See
   839  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
   840  	// details.
   841  	ForceSendFields []string `json:"-"`
   842  	// NullFields is a list of field names (e.g. "Service") to include in API
   843  	// requests with the JSON null value. By default, fields with empty values are
   844  	// omitted from API requests. See
   845  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
   846  	NullFields []string `json:"-"`
   847  }
   848  
   849  func (s *CloudSQLConfig) MarshalJSON() ([]byte, error) {
   850  	type NoMethod CloudSQLConfig
   851  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
   852  }
   853  
   854  // CommonLanguageSettings: Required information for every language.
   855  type CommonLanguageSettings struct {
   856  	// Destinations: The destination where API teams want this client library to be
   857  	// published.
   858  	//
   859  	// Possible values:
   860  	//   "CLIENT_LIBRARY_DESTINATION_UNSPECIFIED" - Client libraries will neither
   861  	// be generated nor published to package managers.
   862  	//   "GITHUB" - Generate the client library in a repo under
   863  	// github.com/googleapis, but don't publish it to package managers.
   864  	//   "PACKAGE_MANAGER" - Publish the library to package managers like nuget.org
   865  	// and npmjs.com.
   866  	Destinations []string `json:"destinations,omitempty"`
   867  	// ReferenceDocsUri: Link to automatically generated reference documentation.
   868  	// Example: https://cloud.google.com/nodejs/docs/reference/asset/latest
   869  	ReferenceDocsUri string `json:"referenceDocsUri,omitempty"`
   870  	// ForceSendFields is a list of field names (e.g. "Destinations") to
   871  	// unconditionally include in API requests. By default, fields with empty or
   872  	// default values are omitted from API requests. See
   873  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
   874  	// details.
   875  	ForceSendFields []string `json:"-"`
   876  	// NullFields is a list of field names (e.g. "Destinations") to include in API
   877  	// requests with the JSON null value. By default, fields with empty values are
   878  	// omitted from API requests. See
   879  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
   880  	NullFields []string `json:"-"`
   881  }
   882  
   883  func (s *CommonLanguageSettings) MarshalJSON() ([]byte, error) {
   884  	type NoMethod CommonLanguageSettings
   885  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
   886  }
   887  
   888  // Connection: Represents a private connection resource. A private connection
   889  // is implemented as a VPC Network Peering connection between a service
   890  // producer's VPC network and a service consumer's VPC network.
   891  type Connection struct {
   892  	// Network: The name of service consumer's VPC network that's connected with
   893  	// service producer network, in the following format:
   894  	// `projects/{project}/global/networks/{network}`. `{project}` is a project
   895  	// number, such as in `12345` that includes the VPC service consumer's VPC
   896  	// network. `{network}` is the name of the service consumer's VPC network.
   897  	Network string `json:"network,omitempty"`
   898  	// Peering: Output only. The name of the VPC Network Peering connection that
   899  	// was created by the service producer.
   900  	Peering string `json:"peering,omitempty"`
   901  	// ReservedPeeringRanges: The name of one or more allocated IP address ranges
   902  	// for this service producer of type `PEERING`. Note that invoking
   903  	// CreateConnection method with a different range when connection is already
   904  	// established will not modify already provisioned service producer
   905  	// subnetworks. If CreateConnection method is invoked repeatedly to reconnect
   906  	// when peering connection had been disconnected on the consumer side, leaving
   907  	// this field empty will restore previously allocated IP ranges.
   908  	ReservedPeeringRanges []string `json:"reservedPeeringRanges,omitempty"`
   909  	// Service: Output only. The name of the peering service that's associated with
   910  	// this connection, in the following format: `services/{service name}`.
   911  	Service string `json:"service,omitempty"`
   912  	// ForceSendFields is a list of field names (e.g. "Network") to unconditionally
   913  	// include in API requests. By default, fields with empty or default values are
   914  	// omitted from API requests. See
   915  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
   916  	// details.
   917  	ForceSendFields []string `json:"-"`
   918  	// NullFields is a list of field names (e.g. "Network") to include in API
   919  	// requests with the JSON null value. By default, fields with empty values are
   920  	// omitted from API requests. See
   921  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
   922  	NullFields []string `json:"-"`
   923  }
   924  
   925  func (s *Connection) MarshalJSON() ([]byte, error) {
   926  	type NoMethod Connection
   927  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
   928  }
   929  
   930  // ConsumerConfig: Configuration information for a private service access
   931  // connection.
   932  type ConsumerConfig struct {
   933  	// CloudsqlConfigs: Represents one or multiple Cloud SQL configurations.
   934  	CloudsqlConfigs []*CloudSQLConfig `json:"cloudsqlConfigs,omitempty"`
   935  	// ConsumerExportCustomRoutes: Export custom routes flag value for peering from
   936  	// consumer to producer.
   937  	ConsumerExportCustomRoutes bool `json:"consumerExportCustomRoutes,omitempty"`
   938  	// ConsumerExportSubnetRoutesWithPublicIp: Export subnet routes with public ip
   939  	// flag value for peering from consumer to producer.
   940  	ConsumerExportSubnetRoutesWithPublicIp bool `json:"consumerExportSubnetRoutesWithPublicIp,omitempty"`
   941  	// ConsumerImportCustomRoutes: Import custom routes flag value for peering from
   942  	// consumer to producer.
   943  	ConsumerImportCustomRoutes bool `json:"consumerImportCustomRoutes,omitempty"`
   944  	// ConsumerImportSubnetRoutesWithPublicIp: Import subnet routes with public ip
   945  	// flag value for peering from consumer to producer.
   946  	ConsumerImportSubnetRoutesWithPublicIp bool `json:"consumerImportSubnetRoutesWithPublicIp,omitempty"`
   947  	// ProducerExportCustomRoutes: Export custom routes flag value for peering from
   948  	// producer to consumer.
   949  	ProducerExportCustomRoutes bool `json:"producerExportCustomRoutes,omitempty"`
   950  	// ProducerExportSubnetRoutesWithPublicIp: Export subnet routes with public ip
   951  	// flag value for peering from producer to consumer.
   952  	ProducerExportSubnetRoutesWithPublicIp bool `json:"producerExportSubnetRoutesWithPublicIp,omitempty"`
   953  	// ProducerImportCustomRoutes: Import custom routes flag value for peering from
   954  	// producer to consumer.
   955  	ProducerImportCustomRoutes bool `json:"producerImportCustomRoutes,omitempty"`
   956  	// ProducerImportSubnetRoutesWithPublicIp: Import subnet routes with public ip
   957  	// flag value for peering from producer to consumer.
   958  	ProducerImportSubnetRoutesWithPublicIp bool `json:"producerImportSubnetRoutesWithPublicIp,omitempty"`
   959  	// ProducerNetwork: Output only. The VPC host network that is used to host
   960  	// managed service instances. In the format,
   961  	// projects/{project}/global/networks/{network} where {project} is the project
   962  	// number e.g. '12345' and {network} is the network name.
   963  	ProducerNetwork string `json:"producerNetwork,omitempty"`
   964  	// ReservedRanges: Output only. The reserved ranges associated with this
   965  	// private service access connection.
   966  	ReservedRanges []*GoogleCloudServicenetworkingV1ConsumerConfigReservedRange `json:"reservedRanges,omitempty"`
   967  	// UsedIpRanges: Output only. The IP ranges already in use by consumer or
   968  	// producer
   969  	UsedIpRanges []string `json:"usedIpRanges,omitempty"`
   970  	// VpcScReferenceArchitectureEnabled: Output only. Indicates whether the VPC
   971  	// Service Controls reference architecture is configured for the producer VPC
   972  	// host network.
   973  	VpcScReferenceArchitectureEnabled bool `json:"vpcScReferenceArchitectureEnabled,omitempty"`
   974  	// ForceSendFields is a list of field names (e.g. "CloudsqlConfigs") to
   975  	// unconditionally include in API requests. By default, fields with empty or
   976  	// default values are omitted from API requests. See
   977  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
   978  	// details.
   979  	ForceSendFields []string `json:"-"`
   980  	// NullFields is a list of field names (e.g. "CloudsqlConfigs") to include in
   981  	// API requests with the JSON null value. By default, fields with empty values
   982  	// are omitted from API requests. See
   983  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
   984  	NullFields []string `json:"-"`
   985  }
   986  
   987  func (s *ConsumerConfig) MarshalJSON() ([]byte, error) {
   988  	type NoMethod ConsumerConfig
   989  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
   990  }
   991  
   992  // ConsumerConfigMetadata: Metadata provided through GetOperation request for
   993  // the LRO generated by UpdateConsumerConfig API.
   994  type ConsumerConfigMetadata struct {
   995  }
   996  
   997  // Context: `Context` defines which contexts an API requests. Example: context:
   998  // rules: - selector: "*" requested: - google.rpc.context.ProjectContext -
   999  // google.rpc.context.OriginContext The above specifies that all methods in the
  1000  // API request `google.rpc.context.ProjectContext` and
  1001  // `google.rpc.context.OriginContext`. Available context types are defined in
  1002  // package `google.rpc.context`. This also provides mechanism to allowlist any
  1003  // protobuf message extension that can be sent in grpc metadata using
  1004  // “x-goog-ext--bin” and “x-goog-ext--jspb” format. For example, list
  1005  // any service specific protobuf types that can appear in grpc metadata as
  1006  // follows in your yaml file: Example: context: rules: - selector:
  1007  // "google.example.library.v1.LibraryService.CreateBook"
  1008  // allowed_request_extensions: - google.foo.v1.NewExtension
  1009  // allowed_response_extensions: - google.foo.v1.NewExtension You can also
  1010  // specify extension ID instead of fully qualified extension name here.
  1011  type Context struct {
  1012  	// Rules: A list of RPC context rules that apply to individual API methods.
  1013  	// **NOTE:** All service configuration rules follow "last one wins" order.
  1014  	Rules []*ContextRule `json:"rules,omitempty"`
  1015  	// ForceSendFields is a list of field names (e.g. "Rules") to unconditionally
  1016  	// include in API requests. By default, fields with empty or default values are
  1017  	// omitted from API requests. See
  1018  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
  1019  	// details.
  1020  	ForceSendFields []string `json:"-"`
  1021  	// NullFields is a list of field names (e.g. "Rules") to include in API
  1022  	// requests with the JSON null value. By default, fields with empty values are
  1023  	// omitted from API requests. See
  1024  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
  1025  	NullFields []string `json:"-"`
  1026  }
  1027  
  1028  func (s *Context) MarshalJSON() ([]byte, error) {
  1029  	type NoMethod Context
  1030  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
  1031  }
  1032  
  1033  // ContextRule: A context rule provides information about the context for an
  1034  // individual API element.
  1035  type ContextRule struct {
  1036  	// AllowedRequestExtensions: A list of full type names or extension IDs of
  1037  	// extensions allowed in grpc side channel from client to backend.
  1038  	AllowedRequestExtensions []string `json:"allowedRequestExtensions,omitempty"`
  1039  	// AllowedResponseExtensions: A list of full type names or extension IDs of
  1040  	// extensions allowed in grpc side channel from backend to client.
  1041  	AllowedResponseExtensions []string `json:"allowedResponseExtensions,omitempty"`
  1042  	// Provided: A list of full type names of provided contexts.
  1043  	Provided []string `json:"provided,omitempty"`
  1044  	// Requested: A list of full type names of requested contexts.
  1045  	Requested []string `json:"requested,omitempty"`
  1046  	// Selector: Selects the methods to which this rule applies. Refer to selector
  1047  	// for syntax details.
  1048  	Selector string `json:"selector,omitempty"`
  1049  	// ForceSendFields is a list of field names (e.g. "AllowedRequestExtensions")
  1050  	// to unconditionally include in API requests. By default, fields with empty or
  1051  	// default values are omitted from API requests. See
  1052  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
  1053  	// details.
  1054  	ForceSendFields []string `json:"-"`
  1055  	// NullFields is a list of field names (e.g. "AllowedRequestExtensions") to
  1056  	// include in API requests with the JSON null value. By default, fields with
  1057  	// empty values are omitted from API requests. See
  1058  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
  1059  	NullFields []string `json:"-"`
  1060  }
  1061  
  1062  func (s *ContextRule) MarshalJSON() ([]byte, error) {
  1063  	type NoMethod ContextRule
  1064  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
  1065  }
  1066  
  1067  // Control: Selects and configures the service controller used by the service.
  1068  // Example: control: environment: servicecontrol.googleapis.com
  1069  type Control struct {
  1070  	// Environment: The service controller environment to use. If empty, no control
  1071  	// plane feature (like quota and billing) will be enabled. The recommended
  1072  	// value for most services is servicecontrol.googleapis.com
  1073  	Environment string `json:"environment,omitempty"`
  1074  	// MethodPolicies: Defines policies applying to the API methods of the service.
  1075  	MethodPolicies []*MethodPolicy `json:"methodPolicies,omitempty"`
  1076  	// ForceSendFields is a list of field names (e.g. "Environment") to
  1077  	// unconditionally include in API requests. By default, fields with empty or
  1078  	// default values are omitted from API requests. See
  1079  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
  1080  	// details.
  1081  	ForceSendFields []string `json:"-"`
  1082  	// NullFields is a list of field names (e.g. "Environment") to include in API
  1083  	// requests with the JSON null value. By default, fields with empty values are
  1084  	// omitted from API requests. See
  1085  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
  1086  	NullFields []string `json:"-"`
  1087  }
  1088  
  1089  func (s *Control) MarshalJSON() ([]byte, error) {
  1090  	type NoMethod Control
  1091  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
  1092  }
  1093  
  1094  // CppSettings: Settings for C++ client libraries.
  1095  type CppSettings struct {
  1096  	// Common: Some settings.
  1097  	Common *CommonLanguageSettings `json:"common,omitempty"`
  1098  	// ForceSendFields is a list of field names (e.g. "Common") to unconditionally
  1099  	// include in API requests. By default, fields with empty or default values are
  1100  	// omitted from API requests. See
  1101  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
  1102  	// details.
  1103  	ForceSendFields []string `json:"-"`
  1104  	// NullFields is a list of field names (e.g. "Common") to include in API
  1105  	// requests with the JSON null value. By default, fields with empty values are
  1106  	// omitted from API requests. See
  1107  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
  1108  	NullFields []string `json:"-"`
  1109  }
  1110  
  1111  func (s *CppSettings) MarshalJSON() ([]byte, error) {
  1112  	type NoMethod CppSettings
  1113  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
  1114  }
  1115  
  1116  // CustomError: Customize service error responses. For example, list any
  1117  // service specific protobuf types that can appear in error detail lists of
  1118  // error responses. Example: custom_error: types: - google.foo.v1.CustomError -
  1119  // google.foo.v1.AnotherError
  1120  type CustomError struct {
  1121  	// Rules: The list of custom error rules that apply to individual API messages.
  1122  	// **NOTE:** All service configuration rules follow "last one wins" order.
  1123  	Rules []*CustomErrorRule `json:"rules,omitempty"`
  1124  	// Types: The list of custom error detail types, e.g.
  1125  	// 'google.foo.v1.CustomError'.
  1126  	Types []string `json:"types,omitempty"`
  1127  	// ForceSendFields is a list of field names (e.g. "Rules") to unconditionally
  1128  	// include in API requests. By default, fields with empty or default values are
  1129  	// omitted from API requests. See
  1130  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
  1131  	// details.
  1132  	ForceSendFields []string `json:"-"`
  1133  	// NullFields is a list of field names (e.g. "Rules") to include in API
  1134  	// requests with the JSON null value. By default, fields with empty values are
  1135  	// omitted from API requests. See
  1136  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
  1137  	NullFields []string `json:"-"`
  1138  }
  1139  
  1140  func (s *CustomError) MarshalJSON() ([]byte, error) {
  1141  	type NoMethod CustomError
  1142  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
  1143  }
  1144  
  1145  // CustomErrorRule: A custom error rule.
  1146  type CustomErrorRule struct {
  1147  	// IsErrorType: Mark this message as possible payload in error response.
  1148  	// Otherwise, objects of this type will be filtered when they appear in error
  1149  	// payload.
  1150  	IsErrorType bool `json:"isErrorType,omitempty"`
  1151  	// Selector: Selects messages to which this rule applies. Refer to selector for
  1152  	// syntax details.
  1153  	Selector string `json:"selector,omitempty"`
  1154  	// ForceSendFields is a list of field names (e.g. "IsErrorType") to
  1155  	// unconditionally include in API requests. By default, fields with empty or
  1156  	// default values are omitted from API requests. See
  1157  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
  1158  	// details.
  1159  	ForceSendFields []string `json:"-"`
  1160  	// NullFields is a list of field names (e.g. "IsErrorType") to include in API
  1161  	// requests with the JSON null value. By default, fields with empty values are
  1162  	// omitted from API requests. See
  1163  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
  1164  	NullFields []string `json:"-"`
  1165  }
  1166  
  1167  func (s *CustomErrorRule) MarshalJSON() ([]byte, error) {
  1168  	type NoMethod CustomErrorRule
  1169  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
  1170  }
  1171  
  1172  // CustomHttpPattern: A custom pattern is used for defining custom HTTP verb.
  1173  type CustomHttpPattern struct {
  1174  	// Kind: The name of this custom HTTP verb.
  1175  	Kind string `json:"kind,omitempty"`
  1176  	// Path: The path matched by this custom verb.
  1177  	Path string `json:"path,omitempty"`
  1178  	// ForceSendFields is a list of field names (e.g. "Kind") to unconditionally
  1179  	// include in API requests. By default, fields with empty or default values are
  1180  	// omitted from API requests. See
  1181  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
  1182  	// details.
  1183  	ForceSendFields []string `json:"-"`
  1184  	// NullFields is a list of field names (e.g. "Kind") to include in API requests
  1185  	// with the JSON null value. By default, fields with empty values are omitted
  1186  	// from API requests. See
  1187  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
  1188  	NullFields []string `json:"-"`
  1189  }
  1190  
  1191  func (s *CustomHttpPattern) MarshalJSON() ([]byte, error) {
  1192  	type NoMethod CustomHttpPattern
  1193  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
  1194  }
  1195  
  1196  // DeleteConnectionMetadata: Metadata provided through GetOperation request for
  1197  // the LRO generated by Delete Connection API
  1198  type DeleteConnectionMetadata struct {
  1199  }
  1200  
  1201  // DeletePeeredDnsDomainMetadata: Metadata provided through GetOperation
  1202  // request for the LRO generated by DeletePeeredDnsDomain API.
  1203  type DeletePeeredDnsDomainMetadata struct {
  1204  }
  1205  
  1206  // DnsRecordSet: Represents a DNS record set resource.
  1207  type DnsRecordSet struct {
  1208  	// Data: Required. As defined in RFC 1035 (section 5) and RFC 1034 (section
  1209  	// 3.6.1) for examples see https://cloud.google.com/dns/records/json-record.
  1210  	Data []string `json:"data,omitempty"`
  1211  	// Domain: Required. The DNS or domain name of the record set, e.g.
  1212  	// `test.example.com`. Cloud DNS requires that a DNS suffix ends with a
  1213  	// trailing dot.
  1214  	Domain string `json:"domain,omitempty"`
  1215  	// Ttl: Required. The period of time for which this RecordSet can be cached by
  1216  	// resolvers.
  1217  	Ttl string `json:"ttl,omitempty"`
  1218  	// Type: Required. The identifier of a supported record type.
  1219  	Type string `json:"type,omitempty"`
  1220  	// ForceSendFields is a list of field names (e.g. "Data") to unconditionally
  1221  	// include in API requests. By default, fields with empty or default values are
  1222  	// omitted from API requests. See
  1223  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
  1224  	// details.
  1225  	ForceSendFields []string `json:"-"`
  1226  	// NullFields is a list of field names (e.g. "Data") to include in API requests
  1227  	// with the JSON null value. By default, fields with empty values are omitted
  1228  	// from API requests. See
  1229  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
  1230  	NullFields []string `json:"-"`
  1231  }
  1232  
  1233  func (s *DnsRecordSet) MarshalJSON() ([]byte, error) {
  1234  	type NoMethod DnsRecordSet
  1235  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
  1236  }
  1237  
  1238  // DnsZone: Represents a DNS zone resource.
  1239  type DnsZone struct {
  1240  	// DnsSuffix: The DNS name suffix of this zone e.g. `example.com.`. Cloud DNS
  1241  	// requires that a DNS suffix ends with a trailing dot.
  1242  	DnsSuffix string `json:"dnsSuffix,omitempty"`
  1243  	// Name: User assigned name for this resource. Must be unique within the
  1244  	// project. The name must be 1-63 characters long, must begin with a letter,
  1245  	// end with a letter or digit, and only contain lowercase letters, digits or
  1246  	// dashes.
  1247  	Name string `json:"name,omitempty"`
  1248  	// ForceSendFields is a list of field names (e.g. "DnsSuffix") to
  1249  	// unconditionally include in API requests. By default, fields with empty or
  1250  	// default values are omitted from API requests. See
  1251  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
  1252  	// details.
  1253  	ForceSendFields []string `json:"-"`
  1254  	// NullFields is a list of field names (e.g. "DnsSuffix") to include in API
  1255  	// requests with the JSON null value. By default, fields with empty values are
  1256  	// omitted from API requests. See
  1257  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
  1258  	NullFields []string `json:"-"`
  1259  }
  1260  
  1261  func (s *DnsZone) MarshalJSON() ([]byte, error) {
  1262  	type NoMethod DnsZone
  1263  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
  1264  }
  1265  
  1266  // Documentation: `Documentation` provides the information for describing a
  1267  // service. Example: documentation: summary: > The Google Calendar API gives
  1268  // access to most calendar features. pages: - name: Overview content: (==
  1269  // include google/foo/overview.md ==) - name: Tutorial content: (== include
  1270  // google/foo/tutorial.md ==) subpages: - name: Java content: (== include
  1271  // google/foo/tutorial_java.md ==) rules: - selector:
  1272  // google.calendar.Calendar.Get description: > ... - selector:
  1273  // google.calendar.Calendar.Put description: > ... Documentation is provided in
  1274  // markdown syntax. In addition to standard markdown features, definition
  1275  // lists, tables and fenced code blocks are supported. Section headers can be
  1276  // provided and are interpreted relative to the section nesting of the context
  1277  // where a documentation fragment is embedded. Documentation from the IDL is
  1278  // merged with documentation defined via the config at normalization time,
  1279  // where documentation provided by config rules overrides IDL provided. A
  1280  // number of constructs specific to the API platform are supported in
  1281  // documentation text. In order to reference a proto element, the following
  1282  // notation can be used: [fully.qualified.proto.name][] To override the display
  1283  // text used for the link, this can be used: [display
  1284  // text][fully.qualified.proto.name] Text can be excluded from doc using the
  1285  // following notation: (-- internal comment --) A few directives are available
  1286  // in documentation. Note that directives must appear on a single line to be
  1287  // properly identified. The `include` directive includes a markdown file from
  1288  // an external source: (== include path/to/file ==) The `resource_for`
  1289  // directive marks a message to be the resource of a collection in REST view.
  1290  // If it is not specified, tools attempt to infer the resource from the
  1291  // operations in a collection: (== resource_for v1.shelves.books ==) The
  1292  // directive `suppress_warning` does not directly affect documentation and is
  1293  // documented together with service config validation.
  1294  type Documentation struct {
  1295  	// DocumentationRootUrl: The URL to the root of documentation.
  1296  	DocumentationRootUrl string `json:"documentationRootUrl,omitempty"`
  1297  	// Overview: Declares a single overview page. For example: documentation:
  1298  	// summary: ... overview: (== include overview.md ==) This is a shortcut for
  1299  	// the following declaration (using pages style): documentation: summary: ...
  1300  	// pages: - name: Overview content: (== include overview.md ==) Note: you
  1301  	// cannot specify both `overview` field and `pages` field.
  1302  	Overview string `json:"overview,omitempty"`
  1303  	// Pages: The top level pages for the documentation set.
  1304  	Pages []*Page `json:"pages,omitempty"`
  1305  	// Rules: A list of documentation rules that apply to individual API elements.
  1306  	// **NOTE:** All service configuration rules follow "last one wins" order.
  1307  	Rules []*DocumentationRule `json:"rules,omitempty"`
  1308  	// SectionOverrides: Specifies section and content to override boilerplate
  1309  	// content provided by go/api-docgen. Currently overrides following sections:
  1310  	// 1. rest.service.client_libraries
  1311  	SectionOverrides []*Page `json:"sectionOverrides,omitempty"`
  1312  	// ServiceRootUrl: Specifies the service root url if the default one (the
  1313  	// service name from the yaml file) is not suitable. This can be seen in any
  1314  	// fully specified service urls as well as sections that show a base that other
  1315  	// urls are relative to.
  1316  	ServiceRootUrl string `json:"serviceRootUrl,omitempty"`
  1317  	// Summary: A short description of what the service does. The summary must be
  1318  	// plain text. It becomes the overview of the service displayed in Google Cloud
  1319  	// Console. NOTE: This field is equivalent to the standard field `description`.
  1320  	Summary string `json:"summary,omitempty"`
  1321  	// ForceSendFields is a list of field names (e.g. "DocumentationRootUrl") to
  1322  	// unconditionally include in API requests. By default, fields with empty or
  1323  	// default values are omitted from API requests. See
  1324  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
  1325  	// details.
  1326  	ForceSendFields []string `json:"-"`
  1327  	// NullFields is a list of field names (e.g. "DocumentationRootUrl") to include
  1328  	// in API requests with the JSON null value. By default, fields with empty
  1329  	// values are omitted from API requests. See
  1330  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
  1331  	NullFields []string `json:"-"`
  1332  }
  1333  
  1334  func (s *Documentation) MarshalJSON() ([]byte, error) {
  1335  	type NoMethod Documentation
  1336  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
  1337  }
  1338  
  1339  // DocumentationRule: A documentation rule provides information about
  1340  // individual API elements.
  1341  type DocumentationRule struct {
  1342  	// DeprecationDescription: Deprecation description of the selected element(s).
  1343  	// It can be provided if an element is marked as `deprecated`.
  1344  	DeprecationDescription string `json:"deprecationDescription,omitempty"`
  1345  	// Description: Description of the selected proto element (e.g. a message, a
  1346  	// method, a 'service' definition, or a field). Defaults to leading & trailing
  1347  	// comments taken from the proto source definition of the proto element.
  1348  	Description string `json:"description,omitempty"`
  1349  	// DisableReplacementWords: String of comma or space separated case-sensitive
  1350  	// words for which method/field name replacement will be disabled by
  1351  	// go/api-docgen.
  1352  	DisableReplacementWords string `json:"disableReplacementWords,omitempty"`
  1353  	// Selector: The selector is a comma-separated list of patterns for any element
  1354  	// such as a method, a field, an enum value. Each pattern is a qualified name
  1355  	// of the element which may end in "*", indicating a wildcard. Wildcards are
  1356  	// only allowed at the end and for a whole component of the qualified name,
  1357  	// i.e. "foo.*" is ok, but not "foo.b*" or "foo.*.bar". A wildcard will match
  1358  	// one or more components. To specify a default for all applicable elements,
  1359  	// the whole pattern "*" is used.
  1360  	Selector string `json:"selector,omitempty"`
  1361  	// ForceSendFields is a list of field names (e.g. "DeprecationDescription") to
  1362  	// unconditionally include in API requests. By default, fields with empty or
  1363  	// default values are omitted from API requests. See
  1364  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
  1365  	// details.
  1366  	ForceSendFields []string `json:"-"`
  1367  	// NullFields is a list of field names (e.g. "DeprecationDescription") to
  1368  	// include in API requests with the JSON null value. By default, fields with
  1369  	// empty values are omitted from API requests. See
  1370  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
  1371  	NullFields []string `json:"-"`
  1372  }
  1373  
  1374  func (s *DocumentationRule) MarshalJSON() ([]byte, error) {
  1375  	type NoMethod DocumentationRule
  1376  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
  1377  }
  1378  
  1379  // DotnetSettings: Settings for Dotnet client libraries.
  1380  type DotnetSettings struct {
  1381  	// Common: Some settings.
  1382  	Common *CommonLanguageSettings `json:"common,omitempty"`
  1383  	// ForcedNamespaceAliases: Namespaces which must be aliased in snippets due to
  1384  	// a known (but non-generator-predictable) naming collision
  1385  	ForcedNamespaceAliases []string `json:"forcedNamespaceAliases,omitempty"`
  1386  	// HandwrittenSignatures: Method signatures (in the form
  1387  	// "service.method(signature)") which are provided separately, so shouldn't be
  1388  	// generated. Snippets *calling* these methods are still generated, however.
  1389  	HandwrittenSignatures []string `json:"handwrittenSignatures,omitempty"`
  1390  	// IgnoredResources: List of full resource types to ignore during generation.
  1391  	// This is typically used for API-specific Location resources, which should be
  1392  	// handled by the generator as if they were actually the common Location
  1393  	// resources. Example entry: "documentai.googleapis.com/Location"
  1394  	IgnoredResources []string `json:"ignoredResources,omitempty"`
  1395  	// RenamedResources: Map from full resource types to the effective short name
  1396  	// for the resource. This is used when otherwise resource named from different
  1397  	// services would cause naming collisions. Example entry:
  1398  	// "datalabeling.googleapis.com/Dataset": "DataLabelingDataset"
  1399  	RenamedResources map[string]string `json:"renamedResources,omitempty"`
  1400  	// RenamedServices: Map from original service names to renamed versions. This
  1401  	// is used when the default generated types would cause a naming conflict.
  1402  	// (Neither name is fully-qualified.) Example: Subscriber to
  1403  	// SubscriberServiceApi.
  1404  	RenamedServices map[string]string `json:"renamedServices,omitempty"`
  1405  	// ForceSendFields is a list of field names (e.g. "Common") to unconditionally
  1406  	// include in API requests. By default, fields with empty or default values are
  1407  	// omitted from API requests. See
  1408  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
  1409  	// details.
  1410  	ForceSendFields []string `json:"-"`
  1411  	// NullFields is a list of field names (e.g. "Common") to include in API
  1412  	// requests with the JSON null value. By default, fields with empty values are
  1413  	// omitted from API requests. See
  1414  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
  1415  	NullFields []string `json:"-"`
  1416  }
  1417  
  1418  func (s *DotnetSettings) MarshalJSON() ([]byte, error) {
  1419  	type NoMethod DotnetSettings
  1420  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
  1421  }
  1422  
  1423  // Endpoint: `Endpoint` describes a network address of a service that serves a
  1424  // set of APIs. It is commonly known as a service endpoint. A service may
  1425  // expose any number of service endpoints, and all service endpoints share the
  1426  // same service definition, such as quota limits and monitoring metrics.
  1427  // Example: type: google.api.Service name: library-example.googleapis.com
  1428  // endpoints: # Declares network address
  1429  // `https://library-example.googleapis.com` # for service
  1430  // `library-example.googleapis.com`. The `https` scheme # is implicit for all
  1431  // service endpoints. Other schemes may be # supported in the future. - name:
  1432  // library-example.googleapis.com allow_cors: false - name:
  1433  // content-staging-library-example.googleapis.com # Allows HTTP OPTIONS calls
  1434  // to be passed to the API frontend, for it # to decide whether the subsequent
  1435  // cross-origin request is allowed # to proceed. allow_cors: true
  1436  type Endpoint struct {
  1437  	// Aliases: Aliases for this endpoint, these will be served by the same UrlMap
  1438  	// as the parent endpoint, and will be provisioned in the GCP stack for the
  1439  	// Regional Endpoints.
  1440  	Aliases []string `json:"aliases,omitempty"`
  1441  	// AllowCors: Allowing CORS
  1442  	// (https://en.wikipedia.org/wiki/Cross-origin_resource_sharing), aka
  1443  	// cross-domain traffic, would allow the backends served from this endpoint to
  1444  	// receive and respond to HTTP OPTIONS requests. The response will be used by
  1445  	// the browser to determine whether the subsequent cross-origin request is
  1446  	// allowed to proceed.
  1447  	AllowCors bool `json:"allowCors,omitempty"`
  1448  	// Name: The canonical name of this endpoint.
  1449  	Name string `json:"name,omitempty"`
  1450  	// Target: The specification of an Internet routable address of API frontend
  1451  	// that will handle requests to this API Endpoint
  1452  	// (https://cloud.google.com/apis/design/glossary). It should be either a valid
  1453  	// IPv4 address or a fully-qualified domain name. For example, "8.8.8.8" or
  1454  	// "myservice.appspot.com".
  1455  	Target string `json:"target,omitempty"`
  1456  	// ForceSendFields is a list of field names (e.g. "Aliases") to unconditionally
  1457  	// include in API requests. By default, fields with empty or default values are
  1458  	// omitted from API requests. See
  1459  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
  1460  	// details.
  1461  	ForceSendFields []string `json:"-"`
  1462  	// NullFields is a list of field names (e.g. "Aliases") to include in API
  1463  	// requests with the JSON null value. By default, fields with empty values are
  1464  	// omitted from API requests. See
  1465  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
  1466  	NullFields []string `json:"-"`
  1467  }
  1468  
  1469  func (s *Endpoint) MarshalJSON() ([]byte, error) {
  1470  	type NoMethod Endpoint
  1471  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
  1472  }
  1473  
  1474  // Enum: Enum type definition.
  1475  type Enum struct {
  1476  	// Edition: The source edition string, only valid when syntax is
  1477  	// SYNTAX_EDITIONS.
  1478  	Edition string `json:"edition,omitempty"`
  1479  	// Enumvalue: Enum value definitions.
  1480  	Enumvalue []*EnumValue `json:"enumvalue,omitempty"`
  1481  	// Name: Enum type name.
  1482  	Name string `json:"name,omitempty"`
  1483  	// Options: Protocol buffer options.
  1484  	Options []*Option `json:"options,omitempty"`
  1485  	// SourceContext: The source context.
  1486  	SourceContext *SourceContext `json:"sourceContext,omitempty"`
  1487  	// Syntax: The source syntax.
  1488  	//
  1489  	// Possible values:
  1490  	//   "SYNTAX_PROTO2" - Syntax `proto2`.
  1491  	//   "SYNTAX_PROTO3" - Syntax `proto3`.
  1492  	//   "SYNTAX_EDITIONS" - Syntax `editions`.
  1493  	Syntax string `json:"syntax,omitempty"`
  1494  	// ForceSendFields is a list of field names (e.g. "Edition") to unconditionally
  1495  	// include in API requests. By default, fields with empty or default values are
  1496  	// omitted from API requests. See
  1497  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
  1498  	// details.
  1499  	ForceSendFields []string `json:"-"`
  1500  	// NullFields is a list of field names (e.g. "Edition") to include in API
  1501  	// requests with the JSON null value. By default, fields with empty values are
  1502  	// omitted from API requests. See
  1503  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
  1504  	NullFields []string `json:"-"`
  1505  }
  1506  
  1507  func (s *Enum) MarshalJSON() ([]byte, error) {
  1508  	type NoMethod Enum
  1509  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
  1510  }
  1511  
  1512  // EnumValue: Enum value definition.
  1513  type EnumValue struct {
  1514  	// Name: Enum value name.
  1515  	Name string `json:"name,omitempty"`
  1516  	// Number: Enum value number.
  1517  	Number int64 `json:"number,omitempty"`
  1518  	// Options: Protocol buffer options.
  1519  	Options []*Option `json:"options,omitempty"`
  1520  	// ForceSendFields is a list of field names (e.g. "Name") to unconditionally
  1521  	// include in API requests. By default, fields with empty or default values are
  1522  	// omitted from API requests. See
  1523  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
  1524  	// details.
  1525  	ForceSendFields []string `json:"-"`
  1526  	// NullFields is a list of field names (e.g. "Name") to include in API requests
  1527  	// with the JSON null value. By default, fields with empty values are omitted
  1528  	// from API requests. See
  1529  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
  1530  	NullFields []string `json:"-"`
  1531  }
  1532  
  1533  func (s *EnumValue) MarshalJSON() ([]byte, error) {
  1534  	type NoMethod EnumValue
  1535  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
  1536  }
  1537  
  1538  // Field: A single field of a message type.
  1539  type Field struct {
  1540  	// Cardinality: The field cardinality.
  1541  	//
  1542  	// Possible values:
  1543  	//   "CARDINALITY_UNKNOWN" - For fields with unknown cardinality.
  1544  	//   "CARDINALITY_OPTIONAL" - For optional fields.
  1545  	//   "CARDINALITY_REQUIRED" - For required fields. Proto2 syntax only.
  1546  	//   "CARDINALITY_REPEATED" - For repeated fields.
  1547  	Cardinality string `json:"cardinality,omitempty"`
  1548  	// DefaultValue: The string value of the default value of this field. Proto2
  1549  	// syntax only.
  1550  	DefaultValue string `json:"defaultValue,omitempty"`
  1551  	// JsonName: The field JSON name.
  1552  	JsonName string `json:"jsonName,omitempty"`
  1553  	// Kind: The field type.
  1554  	//
  1555  	// Possible values:
  1556  	//   "TYPE_UNKNOWN" - Field type unknown.
  1557  	//   "TYPE_DOUBLE" - Field type double.
  1558  	//   "TYPE_FLOAT" - Field type float.
  1559  	//   "TYPE_INT64" - Field type int64.
  1560  	//   "TYPE_UINT64" - Field type uint64.
  1561  	//   "TYPE_INT32" - Field type int32.
  1562  	//   "TYPE_FIXED64" - Field type fixed64.
  1563  	//   "TYPE_FIXED32" - Field type fixed32.
  1564  	//   "TYPE_BOOL" - Field type bool.
  1565  	//   "TYPE_STRING" - Field type string.
  1566  	//   "TYPE_GROUP" - Field type group. Proto2 syntax only, and deprecated.
  1567  	//   "TYPE_MESSAGE" - Field type message.
  1568  	//   "TYPE_BYTES" - Field type bytes.
  1569  	//   "TYPE_UINT32" - Field type uint32.
  1570  	//   "TYPE_ENUM" - Field type enum.
  1571  	//   "TYPE_SFIXED32" - Field type sfixed32.
  1572  	//   "TYPE_SFIXED64" - Field type sfixed64.
  1573  	//   "TYPE_SINT32" - Field type sint32.
  1574  	//   "TYPE_SINT64" - Field type sint64.
  1575  	Kind string `json:"kind,omitempty"`
  1576  	// Name: The field name.
  1577  	Name string `json:"name,omitempty"`
  1578  	// Number: The field number.
  1579  	Number int64 `json:"number,omitempty"`
  1580  	// OneofIndex: The index of the field type in `Type.oneofs`, for message or
  1581  	// enumeration types. The first type has index 1; zero means the type is not in
  1582  	// the list.
  1583  	OneofIndex int64 `json:"oneofIndex,omitempty"`
  1584  	// Options: The protocol buffer options.
  1585  	Options []*Option `json:"options,omitempty"`
  1586  	// Packed: Whether to use alternative packed wire representation.
  1587  	Packed bool `json:"packed,omitempty"`
  1588  	// TypeUrl: The field type URL, without the scheme, for message or enumeration
  1589  	// types. Example: "type.googleapis.com/google.protobuf.Timestamp".
  1590  	TypeUrl string `json:"typeUrl,omitempty"`
  1591  	// ForceSendFields is a list of field names (e.g. "Cardinality") to
  1592  	// unconditionally include in API requests. By default, fields with empty or
  1593  	// default values are omitted from API requests. See
  1594  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
  1595  	// details.
  1596  	ForceSendFields []string `json:"-"`
  1597  	// NullFields is a list of field names (e.g. "Cardinality") to include in API
  1598  	// requests with the JSON null value. By default, fields with empty values are
  1599  	// omitted from API requests. See
  1600  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
  1601  	NullFields []string `json:"-"`
  1602  }
  1603  
  1604  func (s *Field) MarshalJSON() ([]byte, error) {
  1605  	type NoMethod Field
  1606  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
  1607  }
  1608  
  1609  // FieldPolicy: Google API Policy Annotation This message defines a simple API
  1610  // policy annotation that can be used to annotate API request and response
  1611  // message fields with applicable policies. One field may have multiple
  1612  // applicable policies that must all be satisfied before a request can be
  1613  // processed. This policy annotation is used to generate the overall policy
  1614  // that will be used for automatic runtime policy enforcement and documentation
  1615  // generation.
  1616  type FieldPolicy struct {
  1617  	// ResourcePermission: Specifies the required permission(s) for the resource
  1618  	// referred to by the field. It requires the field contains a valid resource
  1619  	// reference, and the request must pass the permission checks to proceed. For
  1620  	// example, "resourcemanager.projects.get".
  1621  	ResourcePermission string `json:"resourcePermission,omitempty"`
  1622  	// ResourceType: Specifies the resource type for the resource referred to by
  1623  	// the field.
  1624  	ResourceType string `json:"resourceType,omitempty"`
  1625  	// Selector: Selects one or more request or response message fields to apply
  1626  	// this `FieldPolicy`. When a `FieldPolicy` is used in proto annotation, the
  1627  	// selector must be left as empty. The service config generator will
  1628  	// automatically fill the correct value. When a `FieldPolicy` is used in
  1629  	// service config, the selector must be a comma-separated string with valid
  1630  	// request or response field paths, such as "foo.bar" or "foo.bar,foo.baz".
  1631  	Selector string `json:"selector,omitempty"`
  1632  	// ForceSendFields is a list of field names (e.g. "ResourcePermission") to
  1633  	// unconditionally include in API requests. By default, fields with empty or
  1634  	// default values are omitted from API requests. See
  1635  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
  1636  	// details.
  1637  	ForceSendFields []string `json:"-"`
  1638  	// NullFields is a list of field names (e.g. "ResourcePermission") to include
  1639  	// in API requests with the JSON null value. By default, fields with empty
  1640  	// values are omitted from API requests. See
  1641  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
  1642  	NullFields []string `json:"-"`
  1643  }
  1644  
  1645  func (s *FieldPolicy) MarshalJSON() ([]byte, error) {
  1646  	type NoMethod FieldPolicy
  1647  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
  1648  }
  1649  
  1650  // GoSettings: Settings for Go client libraries.
  1651  type GoSettings struct {
  1652  	// Common: Some settings.
  1653  	Common *CommonLanguageSettings `json:"common,omitempty"`
  1654  	// ForceSendFields is a list of field names (e.g. "Common") to unconditionally
  1655  	// include in API requests. By default, fields with empty or default values are
  1656  	// omitted from API requests. See
  1657  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
  1658  	// details.
  1659  	ForceSendFields []string `json:"-"`
  1660  	// NullFields is a list of field names (e.g. "Common") to include in API
  1661  	// requests with the JSON null value. By default, fields with empty values are
  1662  	// omitted from API requests. See
  1663  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
  1664  	NullFields []string `json:"-"`
  1665  }
  1666  
  1667  func (s *GoSettings) MarshalJSON() ([]byte, error) {
  1668  	type NoMethod GoSettings
  1669  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
  1670  }
  1671  
  1672  // GoogleCloudServicenetworkingV1ConsumerConfigReservedRange: Allocated IP
  1673  // address ranges for this private service access connection.
  1674  type GoogleCloudServicenetworkingV1ConsumerConfigReservedRange struct {
  1675  	// Address: The starting address of the reserved range. The address must be a
  1676  	// valid IPv4 address in the x.x.x.x format. This value combined with the IP
  1677  	// prefix length is the CIDR range for the reserved range.
  1678  	Address string `json:"address,omitempty"`
  1679  	// IpPrefixLength: The prefix length of the reserved range.
  1680  	IpPrefixLength int64 `json:"ipPrefixLength,omitempty"`
  1681  	// Name: The name of the reserved range.
  1682  	Name string `json:"name,omitempty"`
  1683  	// ForceSendFields is a list of field names (e.g. "Address") to unconditionally
  1684  	// include in API requests. By default, fields with empty or default values are
  1685  	// omitted from API requests. See
  1686  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
  1687  	// details.
  1688  	ForceSendFields []string `json:"-"`
  1689  	// NullFields is a list of field names (e.g. "Address") to include in API
  1690  	// requests with the JSON null value. By default, fields with empty values are
  1691  	// omitted from API requests. See
  1692  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
  1693  	NullFields []string `json:"-"`
  1694  }
  1695  
  1696  func (s *GoogleCloudServicenetworkingV1ConsumerConfigReservedRange) MarshalJSON() ([]byte, error) {
  1697  	type NoMethod GoogleCloudServicenetworkingV1ConsumerConfigReservedRange
  1698  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
  1699  }
  1700  
  1701  // GoogleCloudServicenetworkingV1betaConnection: Represents a private
  1702  // connection resource. A private connection is implemented as a VPC Network
  1703  // Peering connection between a service producer's VPC network and a service
  1704  // consumer's VPC network.
  1705  type GoogleCloudServicenetworkingV1betaConnection struct {
  1706  	// Network: The name of service consumer's VPC network that's connected with
  1707  	// service producer network, in the following format:
  1708  	// `projects/{project}/global/networks/{network}`. `{project}` is a project
  1709  	// number, such as in `12345` that includes the VPC service consumer's VPC
  1710  	// network. `{network}` is the name of the service consumer's VPC network.
  1711  	Network string `json:"network,omitempty"`
  1712  	// Peering: Output only. The name of the VPC Network Peering connection that
  1713  	// was created by the service producer.
  1714  	Peering string `json:"peering,omitempty"`
  1715  	// ReservedPeeringRanges: The name of one or more allocated IP address ranges
  1716  	// for this service producer of type `PEERING`. Note that invoking this method
  1717  	// with a different range when connection is already established will not
  1718  	// modify already provisioned service producer subnetworks.
  1719  	ReservedPeeringRanges []string `json:"reservedPeeringRanges,omitempty"`
  1720  	// Service: Output only. The name of the peering service that's associated with
  1721  	// this connection, in the following format: `services/{service name}`.
  1722  	Service string `json:"service,omitempty"`
  1723  	// ForceSendFields is a list of field names (e.g. "Network") to unconditionally
  1724  	// include in API requests. By default, fields with empty or default values are
  1725  	// omitted from API requests. See
  1726  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
  1727  	// details.
  1728  	ForceSendFields []string `json:"-"`
  1729  	// NullFields is a list of field names (e.g. "Network") to include in API
  1730  	// requests with the JSON null value. By default, fields with empty values are
  1731  	// omitted from API requests. See
  1732  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
  1733  	NullFields []string `json:"-"`
  1734  }
  1735  
  1736  func (s *GoogleCloudServicenetworkingV1betaConnection) MarshalJSON() ([]byte, error) {
  1737  	type NoMethod GoogleCloudServicenetworkingV1betaConnection
  1738  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
  1739  }
  1740  
  1741  // GoogleCloudServicenetworkingV1betaSubnetwork: Represents a subnet that was
  1742  // created or discovered by a private access management service.
  1743  type GoogleCloudServicenetworkingV1betaSubnetwork struct {
  1744  	// IpCidrRange: Subnetwork CIDR range in `10.x.x.x/y` format.
  1745  	IpCidrRange string `json:"ipCidrRange,omitempty"`
  1746  	// Name: Subnetwork name. See https://cloud.google.com/compute/docs/vpc/
  1747  	Name string `json:"name,omitempty"`
  1748  	// Network: In the Shared VPC host project, the VPC network that's peered with
  1749  	// the consumer network. For example:
  1750  	// `projects/1234321/global/networks/host-network`
  1751  	Network string `json:"network,omitempty"`
  1752  	// OutsideAllocation: This is a discovered subnet that is not within the
  1753  	// current consumer allocated ranges.
  1754  	OutsideAllocation bool `json:"outsideAllocation,omitempty"`
  1755  	// ForceSendFields is a list of field names (e.g. "IpCidrRange") to
  1756  	// unconditionally include in API requests. By default, fields with empty or
  1757  	// default values are omitted from API requests. See
  1758  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
  1759  	// details.
  1760  	ForceSendFields []string `json:"-"`
  1761  	// NullFields is a list of field names (e.g. "IpCidrRange") to include in API
  1762  	// requests with the JSON null value. By default, fields with empty values are
  1763  	// omitted from API requests. See
  1764  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
  1765  	NullFields []string `json:"-"`
  1766  }
  1767  
  1768  func (s *GoogleCloudServicenetworkingV1betaSubnetwork) MarshalJSON() ([]byte, error) {
  1769  	type NoMethod GoogleCloudServicenetworkingV1betaSubnetwork
  1770  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
  1771  }
  1772  
  1773  // Http: Defines the HTTP configuration for an API service. It contains a list
  1774  // of HttpRule, each specifying the mapping of an RPC method to one or more
  1775  // HTTP REST API methods.
  1776  type Http struct {
  1777  	// FullyDecodeReservedExpansion: When set to true, URL path parameters will be
  1778  	// fully URI-decoded except in cases of single segment matches in reserved
  1779  	// expansion, where "%2F" will be left encoded. The default behavior is to not
  1780  	// decode RFC 6570 reserved characters in multi segment matches.
  1781  	FullyDecodeReservedExpansion bool `json:"fullyDecodeReservedExpansion,omitempty"`
  1782  	// Rules: A list of HTTP configuration rules that apply to individual API
  1783  	// methods. **NOTE:** All service configuration rules follow "last one wins"
  1784  	// order.
  1785  	Rules []*HttpRule `json:"rules,omitempty"`
  1786  	// ForceSendFields is a list of field names (e.g.
  1787  	// "FullyDecodeReservedExpansion") to unconditionally include in API requests.
  1788  	// By default, fields with empty or default values are omitted from API
  1789  	// requests. See https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields
  1790  	// for more details.
  1791  	ForceSendFields []string `json:"-"`
  1792  	// NullFields is a list of field names (e.g. "FullyDecodeReservedExpansion") to
  1793  	// include in API requests with the JSON null value. By default, fields with
  1794  	// empty values are omitted from API requests. See
  1795  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
  1796  	NullFields []string `json:"-"`
  1797  }
  1798  
  1799  func (s *Http) MarshalJSON() ([]byte, error) {
  1800  	type NoMethod Http
  1801  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
  1802  }
  1803  
  1804  // HttpRule: # gRPC Transcoding gRPC Transcoding is a feature for mapping
  1805  // between a gRPC method and one or more HTTP REST endpoints. It allows
  1806  // developers to build a single API service that supports both gRPC APIs and
  1807  // REST APIs. Many systems, including Google APIs
  1808  // (https://github.com/googleapis/googleapis), Cloud Endpoints
  1809  // (https://cloud.google.com/endpoints), gRPC Gateway
  1810  // (https://github.com/grpc-ecosystem/grpc-gateway), and Envoy
  1811  // (https://github.com/envoyproxy/envoy) proxy support this feature and use it
  1812  // for large scale production services. `HttpRule` defines the schema of the
  1813  // gRPC/REST mapping. The mapping specifies how different portions of the gRPC
  1814  // request message are mapped to the URL path, URL query parameters, and HTTP
  1815  // request body. It also controls how the gRPC response message is mapped to
  1816  // the HTTP response body. `HttpRule` is typically specified as an
  1817  // `google.api.http` annotation on the gRPC method. Each mapping specifies a
  1818  // URL path template and an HTTP method. The path template may refer to one or
  1819  // more fields in the gRPC request message, as long as each field is a
  1820  // non-repeated field with a primitive (non-message) type. The path template
  1821  // controls how fields of the request message are mapped to the URL path.
  1822  // Example: service Messaging { rpc GetMessage(GetMessageRequest) returns
  1823  // (Message) { option (google.api.http) = { get: "/v1/{name=messages/*}" }; } }
  1824  // message GetMessageRequest { string name = 1; // Mapped to URL path. }
  1825  // message Message { string text = 1; // The resource content. } This enables
  1826  // an HTTP REST to gRPC mapping as below: HTTP | gRPC -----|----- `GET
  1827  // /v1/messages/123456` | `GetMessage(name: "messages/123456")` Any fields in
  1828  // the request message which are not bound by the path template automatically
  1829  // become HTTP query parameters if there is no HTTP request body. For example:
  1830  // service Messaging { rpc GetMessage(GetMessageRequest) returns (Message) {
  1831  // option (google.api.http) = { get:"/v1/messages/{message_id}" }; } } message
  1832  // GetMessageRequest { message SubMessage { string subfield = 1; } string
  1833  // message_id = 1; // Mapped to URL path. int64 revision = 2; // Mapped to URL
  1834  // query parameter `revision`. SubMessage sub = 3; // Mapped to URL query
  1835  // parameter `sub.subfield`. } This enables a HTTP JSON to RPC mapping as
  1836  // below: HTTP | gRPC -----|----- `GET
  1837  // /v1/messages/123456?revision=2&sub.subfield=foo` | `GetMessage(message_id:
  1838  // "123456" revision: 2 sub: SubMessage(subfield: "foo"))` Note that fields
  1839  // which are mapped to URL query parameters must have a primitive type or a
  1840  // repeated primitive type or a non-repeated message type. In the case of a
  1841  // repeated type, the parameter can be repeated in the URL as
  1842  // `...?param=A&param=B`. In the case of a message type, each field of the
  1843  // message is mapped to a separate parameter, such as
  1844  // `...?foo.a=A&foo.b=B&foo.c=C`. For HTTP methods that allow a request body,
  1845  // the `body` field specifies the mapping. Consider a REST update method on the
  1846  // message resource collection: service Messaging { rpc
  1847  // UpdateMessage(UpdateMessageRequest) returns (Message) { option
  1848  // (google.api.http) = { patch: "/v1/messages/{message_id}" body: "message" };
  1849  // } } message UpdateMessageRequest { string message_id = 1; // mapped to the
  1850  // URL Message message = 2; // mapped to the body } The following HTTP JSON to
  1851  // RPC mapping is enabled, where the representation of the JSON in the request
  1852  // body is determined by protos JSON encoding: HTTP | gRPC -----|----- `PATCH
  1853  // /v1/messages/123456 { "text": "Hi!" }` | `UpdateMessage(message_id: "123456"
  1854  // message { text: "Hi!" })` The special name `*` can be used in the body
  1855  // mapping to define that every field not bound by the path template should be
  1856  // mapped to the request body. This enables the following alternative
  1857  // definition of the update method: service Messaging { rpc
  1858  // UpdateMessage(Message) returns (Message) { option (google.api.http) = {
  1859  // patch: "/v1/messages/{message_id}" body: "*" }; } } message Message { string
  1860  // message_id = 1; string text = 2; } The following HTTP JSON to RPC mapping is
  1861  // enabled: HTTP | gRPC -----|----- `PATCH /v1/messages/123456 { "text": "Hi!"
  1862  // }` | `UpdateMessage(message_id: "123456" text: "Hi!")` Note that when using
  1863  // `*` in the body mapping, it is not possible to have HTTP parameters, as all
  1864  // fields not bound by the path end in the body. This makes this option more
  1865  // rarely used in practice when defining REST APIs. The common usage of `*` is
  1866  // in custom methods which don't use the URL at all for transferring data. It
  1867  // is possible to define multiple HTTP methods for one RPC by using the
  1868  // `additional_bindings` option. Example: service Messaging { rpc
  1869  // GetMessage(GetMessageRequest) returns (Message) { option (google.api.http) =
  1870  // { get: "/v1/messages/{message_id}" additional_bindings { get:
  1871  // "/v1/users/{user_id}/messages/{message_id}" } }; } } message
  1872  // GetMessageRequest { string message_id = 1; string user_id = 2; } This
  1873  // enables the following two alternative HTTP JSON to RPC mappings: HTTP | gRPC
  1874  // -----|----- `GET /v1/messages/123456` | `GetMessage(message_id: "123456")`
  1875  // `GET /v1/users/me/messages/123456` | `GetMessage(user_id: "me" message_id:
  1876  // "123456")` ## Rules for HTTP mapping 1. Leaf request fields (recursive
  1877  // expansion nested messages in the request message) are classified into three
  1878  // categories: - Fields referred by the path template. They are passed via the
  1879  // URL path. - Fields referred by the HttpRule.body. They are passed via the
  1880  // HTTP request body. - All other fields are passed via the URL query
  1881  // parameters, and the parameter name is the field path in the request message.
  1882  // A repeated field can be represented as multiple query parameters under the
  1883  // same name. 2. If HttpRule.body is "*", there is no URL query parameter, all
  1884  // fields are passed via URL path and HTTP request body. 3. If HttpRule.body is
  1885  // omitted, there is no HTTP request body, all fields are passed via URL path
  1886  // and URL query parameters. ### Path template syntax Template = "/" Segments [
  1887  // Verb ] ; Segments = Segment { "/" Segment } ; Segment = "*" | "**" | LITERAL
  1888  // | Variable ; Variable = "{" FieldPath [ "=" Segments ] "}" ; FieldPath =
  1889  // IDENT { "." IDENT } ; Verb = ":" LITERAL ; The syntax `*` matches a single
  1890  // URL path segment. The syntax `**` matches zero or more URL path segments,
  1891  // which must be the last part of the URL path except the `Verb`. The syntax
  1892  // `Variable` matches part of the URL path as specified by its template. A
  1893  // variable template must not contain other variables. If a variable matches a
  1894  // single path segment, its template may be omitted, e.g. `{var}` is equivalent
  1895  // to `{var=*}`. The syntax `LITERAL` matches literal text in the URL path. If
  1896  // the `LITERAL` contains any reserved character, such characters should be
  1897  // percent-encoded before the matching. If a variable contains exactly one path
  1898  // segment, such as "{var}" or "{var=*}", when such a variable is expanded
  1899  // into a URL path on the client side, all characters except `[-_.~0-9a-zA-Z]`
  1900  // are percent-encoded. The server side does the reverse decoding. Such
  1901  // variables show up in the Discovery Document
  1902  // (https://developers.google.com/discovery/v1/reference/apis) as `{var}`. If a
  1903  // variable contains multiple path segments, such as "{var=foo/*}" or
  1904  // "{var=**}", when such a variable is expanded into a URL path on the client
  1905  // side, all characters except `[-_.~/0-9a-zA-Z]` are percent-encoded. The
  1906  // server side does the reverse decoding, except "%2F" and "%2f" are left
  1907  // unchanged. Such variables show up in the Discovery Document
  1908  // (https://developers.google.com/discovery/v1/reference/apis) as `{+var}`. ##
  1909  // Using gRPC API Service Configuration gRPC API Service Configuration (service
  1910  // config) is a configuration language for configuring a gRPC service to become
  1911  // a user-facing product. The service config is simply the YAML representation
  1912  // of the `google.api.Service` proto message. As an alternative to annotating
  1913  // your proto file, you can configure gRPC transcoding in your service config
  1914  // YAML files. You do this by specifying a `HttpRule` that maps the gRPC method
  1915  // to a REST endpoint, achieving the same effect as the proto annotation. This
  1916  // can be particularly useful if you have a proto that is reused in multiple
  1917  // services. Note that any transcoding specified in the service config will
  1918  // override any matching transcoding configuration in the proto. Example: http:
  1919  // rules: # Selects a gRPC method and applies HttpRule to it. - selector:
  1920  // example.v1.Messaging.GetMessage get:
  1921  // /v1/messages/{message_id}/{sub.subfield} ## Special notes When gRPC
  1922  // Transcoding is used to map a gRPC to JSON REST endpoints, the proto to JSON
  1923  // conversion must follow the proto3 specification
  1924  // (https://developers.google.com/protocol-buffers/docs/proto3#json). While the
  1925  // single segment variable follows the semantics of RFC 6570
  1926  // (https://tools.ietf.org/html/rfc6570) Section 3.2.2 Simple String Expansion,
  1927  // the multi segment variable **does not** follow RFC 6570 Section 3.2.3
  1928  // Reserved Expansion. The reason is that the Reserved Expansion does not
  1929  // expand special characters like `?` and `#`, which would lead to invalid
  1930  // URLs. As the result, gRPC Transcoding uses a custom encoding for multi
  1931  // segment variables. The path variables **must not** refer to any repeated or
  1932  // mapped field, because client libraries are not capable of handling such
  1933  // variable expansion. The path variables **must not** capture the leading "/"
  1934  // character. The reason is that the most common use case "{var}" does not
  1935  // capture the leading "/" character. For consistency, all path variables must
  1936  // share the same behavior. Repeated message fields must not be mapped to URL
  1937  // query parameters, because no client library can support such complicated
  1938  // mapping. If an API needs to use a JSON array for request or response body,
  1939  // it can map the request or response body to a repeated field. However, some
  1940  // gRPC Transcoding implementations may not support this feature.
  1941  type HttpRule struct {
  1942  	// AdditionalBindings: Additional HTTP bindings for the selector. Nested
  1943  	// bindings must not contain an `additional_bindings` field themselves (that
  1944  	// is, the nesting may only be one level deep).
  1945  	AdditionalBindings []*HttpRule `json:"additionalBindings,omitempty"`
  1946  	// Body: The name of the request field whose value is mapped to the HTTP
  1947  	// request body, or `*` for mapping all request fields not captured by the path
  1948  	// pattern to the HTTP body, or omitted for not having any HTTP request body.
  1949  	// NOTE: the referred field must be present at the top-level of the request
  1950  	// message type.
  1951  	Body string `json:"body,omitempty"`
  1952  	// Custom: The custom pattern is used for specifying an HTTP method that is not
  1953  	// included in the `pattern` field, such as HEAD, or "*" to leave the HTTP
  1954  	// method unspecified for this rule. The wild-card rule is useful for services
  1955  	// that provide content to Web (HTML) clients.
  1956  	Custom *CustomHttpPattern `json:"custom,omitempty"`
  1957  	// Delete: Maps to HTTP DELETE. Used for deleting a resource.
  1958  	Delete string `json:"delete,omitempty"`
  1959  	// Get: Maps to HTTP GET. Used for listing and getting information about
  1960  	// resources.
  1961  	Get string `json:"get,omitempty"`
  1962  	// Patch: Maps to HTTP PATCH. Used for updating a resource.
  1963  	Patch string `json:"patch,omitempty"`
  1964  	// Post: Maps to HTTP POST. Used for creating a resource or performing an
  1965  	// action.
  1966  	Post string `json:"post,omitempty"`
  1967  	// Put: Maps to HTTP PUT. Used for replacing a resource.
  1968  	Put string `json:"put,omitempty"`
  1969  	// ResponseBody: Optional. The name of the response field whose value is mapped
  1970  	// to the HTTP response body. When omitted, the entire response message will be
  1971  	// used as the HTTP response body. NOTE: The referred field must be present at
  1972  	// the top-level of the response message type.
  1973  	ResponseBody string `json:"responseBody,omitempty"`
  1974  	// Selector: Selects a method to which this rule applies. Refer to selector for
  1975  	// syntax details.
  1976  	Selector string `json:"selector,omitempty"`
  1977  	// ForceSendFields is a list of field names (e.g. "AdditionalBindings") to
  1978  	// unconditionally include in API requests. By default, fields with empty or
  1979  	// default values are omitted from API requests. See
  1980  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
  1981  	// details.
  1982  	ForceSendFields []string `json:"-"`
  1983  	// NullFields is a list of field names (e.g. "AdditionalBindings") to include
  1984  	// in API requests with the JSON null value. By default, fields with empty
  1985  	// values are omitted from API requests. See
  1986  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
  1987  	NullFields []string `json:"-"`
  1988  }
  1989  
  1990  func (s *HttpRule) MarshalJSON() ([]byte, error) {
  1991  	type NoMethod HttpRule
  1992  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
  1993  }
  1994  
  1995  // JavaSettings: Settings for Java client libraries.
  1996  type JavaSettings struct {
  1997  	// Common: Some settings.
  1998  	Common *CommonLanguageSettings `json:"common,omitempty"`
  1999  	// LibraryPackage: The package name to use in Java. Clobbers the java_package
  2000  	// option set in the protobuf. This should be used **only** by APIs who have
  2001  	// already set the language_settings.java.package_name" field in gapic.yaml.
  2002  	// API teams should use the protobuf java_package option where possible.
  2003  	// Example of a YAML configuration:: publishing: java_settings:
  2004  	// library_package: com.google.cloud.pubsub.v1
  2005  	LibraryPackage string `json:"libraryPackage,omitempty"`
  2006  	// ServiceClassNames: Configure the Java class name to use instead of the
  2007  	// service's for its corresponding generated GAPIC client. Keys are
  2008  	// fully-qualified service names as they appear in the protobuf (including the
  2009  	// full the language_settings.java.interface_names" field in gapic.yaml. API
  2010  	// teams should otherwise use the service name as it appears in the protobuf.
  2011  	// Example of a YAML configuration:: publishing: java_settings:
  2012  	// service_class_names: - google.pubsub.v1.Publisher: TopicAdmin -
  2013  	// google.pubsub.v1.Subscriber: SubscriptionAdmin
  2014  	ServiceClassNames map[string]string `json:"serviceClassNames,omitempty"`
  2015  	// ForceSendFields is a list of field names (e.g. "Common") to unconditionally
  2016  	// include in API requests. By default, fields with empty or default values are
  2017  	// omitted from API requests. See
  2018  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
  2019  	// details.
  2020  	ForceSendFields []string `json:"-"`
  2021  	// NullFields is a list of field names (e.g. "Common") to include in API
  2022  	// requests with the JSON null value. By default, fields with empty values are
  2023  	// omitted from API requests. See
  2024  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
  2025  	NullFields []string `json:"-"`
  2026  }
  2027  
  2028  func (s *JavaSettings) MarshalJSON() ([]byte, error) {
  2029  	type NoMethod JavaSettings
  2030  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
  2031  }
  2032  
  2033  // JwtLocation: Specifies a location to extract JWT from an API request.
  2034  type JwtLocation struct {
  2035  	// Cookie: Specifies cookie name to extract JWT token.
  2036  	Cookie string `json:"cookie,omitempty"`
  2037  	// Header: Specifies HTTP header name to extract JWT token.
  2038  	Header string `json:"header,omitempty"`
  2039  	// Query: Specifies URL query parameter name to extract JWT token.
  2040  	Query string `json:"query,omitempty"`
  2041  	// ValuePrefix: The value prefix. The value format is "value_prefix{token}"
  2042  	// Only applies to "in" header type. Must be empty for "in" query type. If not
  2043  	// empty, the header value has to match (case sensitive) this prefix. If not
  2044  	// matched, JWT will not be extracted. If matched, JWT will be extracted after
  2045  	// the prefix is removed. For example, for "Authorization: Bearer {JWT}",
  2046  	// value_prefix="Bearer " with a space at the end.
  2047  	ValuePrefix string `json:"valuePrefix,omitempty"`
  2048  	// ForceSendFields is a list of field names (e.g. "Cookie") to unconditionally
  2049  	// include in API requests. By default, fields with empty or default values are
  2050  	// omitted from API requests. See
  2051  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
  2052  	// details.
  2053  	ForceSendFields []string `json:"-"`
  2054  	// NullFields is a list of field names (e.g. "Cookie") to include in API
  2055  	// requests with the JSON null value. By default, fields with empty values are
  2056  	// omitted from API requests. See
  2057  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
  2058  	NullFields []string `json:"-"`
  2059  }
  2060  
  2061  func (s *JwtLocation) MarshalJSON() ([]byte, error) {
  2062  	type NoMethod JwtLocation
  2063  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
  2064  }
  2065  
  2066  // LabelDescriptor: A description of a label.
  2067  type LabelDescriptor struct {
  2068  	// Description: A human-readable description for the label.
  2069  	Description string `json:"description,omitempty"`
  2070  	// Key: The label key.
  2071  	Key string `json:"key,omitempty"`
  2072  	// ValueType: The type of data that can be assigned to the label.
  2073  	//
  2074  	// Possible values:
  2075  	//   "STRING" - A variable-length string. This is the default.
  2076  	//   "BOOL" - Boolean; true or false.
  2077  	//   "INT64" - A 64-bit signed integer.
  2078  	ValueType string `json:"valueType,omitempty"`
  2079  	// ForceSendFields is a list of field names (e.g. "Description") to
  2080  	// unconditionally include in API requests. By default, fields with empty or
  2081  	// default values are omitted from API requests. See
  2082  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
  2083  	// details.
  2084  	ForceSendFields []string `json:"-"`
  2085  	// NullFields is a list of field names (e.g. "Description") to include in API
  2086  	// requests with the JSON null value. By default, fields with empty values are
  2087  	// omitted from API requests. See
  2088  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
  2089  	NullFields []string `json:"-"`
  2090  }
  2091  
  2092  func (s *LabelDescriptor) MarshalJSON() ([]byte, error) {
  2093  	type NoMethod LabelDescriptor
  2094  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
  2095  }
  2096  
  2097  // ListConnectionsResponse: ListConnectionsResponse is the response to list
  2098  // peering states for the given service and consumer project.
  2099  type ListConnectionsResponse struct {
  2100  	// Connections: The list of Connections.
  2101  	Connections []*GoogleCloudServicenetworkingV1betaConnection `json:"connections,omitempty"`
  2102  
  2103  	// ServerResponse contains the HTTP response code and headers from the server.
  2104  	googleapi.ServerResponse `json:"-"`
  2105  	// ForceSendFields is a list of field names (e.g. "Connections") to
  2106  	// unconditionally include in API requests. By default, fields with empty or
  2107  	// default values are omitted from API requests. See
  2108  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
  2109  	// details.
  2110  	ForceSendFields []string `json:"-"`
  2111  	// NullFields is a list of field names (e.g. "Connections") to include in API
  2112  	// requests with the JSON null value. By default, fields with empty values are
  2113  	// omitted from API requests. See
  2114  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
  2115  	NullFields []string `json:"-"`
  2116  }
  2117  
  2118  func (s *ListConnectionsResponse) MarshalJSON() ([]byte, error) {
  2119  	type NoMethod ListConnectionsResponse
  2120  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
  2121  }
  2122  
  2123  // LogDescriptor: A description of a log type. Example in YAML format: - name:
  2124  // library.googleapis.com/activity_history description: The history of
  2125  // borrowing and returning library items. display_name: Activity labels: - key:
  2126  // /customer_id description: Identifier of a library customer
  2127  type LogDescriptor struct {
  2128  	// Description: A human-readable description of this log. This information
  2129  	// appears in the documentation and can contain details.
  2130  	Description string `json:"description,omitempty"`
  2131  	// DisplayName: The human-readable name for this log. This information appears
  2132  	// on the user interface and should be concise.
  2133  	DisplayName string `json:"displayName,omitempty"`
  2134  	// Labels: The set of labels that are available to describe a specific log
  2135  	// entry. Runtime requests that contain labels not specified here are
  2136  	// considered invalid.
  2137  	Labels []*LabelDescriptor `json:"labels,omitempty"`
  2138  	// Name: The name of the log. It must be less than 512 characters long and can
  2139  	// include the following characters: upper- and lower-case alphanumeric
  2140  	// characters [A-Za-z0-9], and punctuation characters including slash,
  2141  	// underscore, hyphen, period [/_-.].
  2142  	Name string `json:"name,omitempty"`
  2143  	// ForceSendFields is a list of field names (e.g. "Description") to
  2144  	// unconditionally include in API requests. By default, fields with empty or
  2145  	// default values are omitted from API requests. See
  2146  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
  2147  	// details.
  2148  	ForceSendFields []string `json:"-"`
  2149  	// NullFields is a list of field names (e.g. "Description") to include in API
  2150  	// requests with the JSON null value. By default, fields with empty values are
  2151  	// omitted from API requests. See
  2152  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
  2153  	NullFields []string `json:"-"`
  2154  }
  2155  
  2156  func (s *LogDescriptor) MarshalJSON() ([]byte, error) {
  2157  	type NoMethod LogDescriptor
  2158  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
  2159  }
  2160  
  2161  // Logging: Logging configuration of the service. The following example shows
  2162  // how to configure logs to be sent to the producer and consumer projects. In
  2163  // the example, the `activity_history` log is sent to both the producer and
  2164  // consumer projects, whereas the `purchase_history` log is only sent to the
  2165  // producer project. monitored_resources: - type: library.googleapis.com/branch
  2166  // labels: - key: /city description: The city where the library branch is
  2167  // located in. - key: /name description: The name of the branch. logs: - name:
  2168  // activity_history labels: - key: /customer_id - name: purchase_history
  2169  // logging: producer_destinations: - monitored_resource:
  2170  // library.googleapis.com/branch logs: - activity_history - purchase_history
  2171  // consumer_destinations: - monitored_resource: library.googleapis.com/branch
  2172  // logs: - activity_history
  2173  type Logging struct {
  2174  	// ConsumerDestinations: Logging configurations for sending logs to the
  2175  	// consumer project. There can be multiple consumer destinations, each one must
  2176  	// have a different monitored resource type. A log can be used in at most one
  2177  	// consumer destination.
  2178  	ConsumerDestinations []*LoggingDestination `json:"consumerDestinations,omitempty"`
  2179  	// ProducerDestinations: Logging configurations for sending logs to the
  2180  	// producer project. There can be multiple producer destinations, each one must
  2181  	// have a different monitored resource type. A log can be used in at most one
  2182  	// producer destination.
  2183  	ProducerDestinations []*LoggingDestination `json:"producerDestinations,omitempty"`
  2184  	// ForceSendFields is a list of field names (e.g. "ConsumerDestinations") to
  2185  	// unconditionally include in API requests. By default, fields with empty or
  2186  	// default values are omitted from API requests. See
  2187  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
  2188  	// details.
  2189  	ForceSendFields []string `json:"-"`
  2190  	// NullFields is a list of field names (e.g. "ConsumerDestinations") to include
  2191  	// in API requests with the JSON null value. By default, fields with empty
  2192  	// values are omitted from API requests. See
  2193  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
  2194  	NullFields []string `json:"-"`
  2195  }
  2196  
  2197  func (s *Logging) MarshalJSON() ([]byte, error) {
  2198  	type NoMethod Logging
  2199  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
  2200  }
  2201  
  2202  // LoggingDestination: Configuration of a specific logging destination (the
  2203  // producer project or the consumer project).
  2204  type LoggingDestination struct {
  2205  	// Logs: Names of the logs to be sent to this destination. Each name must be
  2206  	// defined in the Service.logs section. If the log name is not a domain scoped
  2207  	// name, it will be automatically prefixed with the service name followed by
  2208  	// "/".
  2209  	Logs []string `json:"logs,omitempty"`
  2210  	// MonitoredResource: The monitored resource type. The type must be defined in
  2211  	// the Service.monitored_resources section.
  2212  	MonitoredResource string `json:"monitoredResource,omitempty"`
  2213  	// ForceSendFields is a list of field names (e.g. "Logs") to unconditionally
  2214  	// include in API requests. By default, fields with empty or default values are
  2215  	// omitted from API requests. See
  2216  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
  2217  	// details.
  2218  	ForceSendFields []string `json:"-"`
  2219  	// NullFields is a list of field names (e.g. "Logs") to include in API requests
  2220  	// with the JSON null value. By default, fields with empty values are omitted
  2221  	// from API requests. See
  2222  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
  2223  	NullFields []string `json:"-"`
  2224  }
  2225  
  2226  func (s *LoggingDestination) MarshalJSON() ([]byte, error) {
  2227  	type NoMethod LoggingDestination
  2228  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
  2229  }
  2230  
  2231  // LongRunning: Describes settings to use when generating API methods that use
  2232  // the long-running operation pattern. All default values below are from those
  2233  // used in the client library generators (e.g. Java
  2234  // (https://github.com/googleapis/gapic-generator-java/blob/04c2faa191a9b5a10b92392fe8482279c4404803/src/main/java/com/google/api/generator/gapic/composer/common/RetrySettingsComposer.java)).
  2235  type LongRunning struct {
  2236  	// InitialPollDelay: Initial delay after which the first poll request will be
  2237  	// made. Default value: 5 seconds.
  2238  	InitialPollDelay string `json:"initialPollDelay,omitempty"`
  2239  	// MaxPollDelay: Maximum time between two subsequent poll requests. Default
  2240  	// value: 45 seconds.
  2241  	MaxPollDelay string `json:"maxPollDelay,omitempty"`
  2242  	// PollDelayMultiplier: Multiplier to gradually increase delay between
  2243  	// subsequent polls until it reaches max_poll_delay. Default value: 1.5.
  2244  	PollDelayMultiplier float64 `json:"pollDelayMultiplier,omitempty"`
  2245  	// TotalPollTimeout: Total polling timeout. Default value: 5 minutes.
  2246  	TotalPollTimeout string `json:"totalPollTimeout,omitempty"`
  2247  	// ForceSendFields is a list of field names (e.g. "InitialPollDelay") to
  2248  	// unconditionally include in API requests. By default, fields with empty or
  2249  	// default values are omitted from API requests. See
  2250  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
  2251  	// details.
  2252  	ForceSendFields []string `json:"-"`
  2253  	// NullFields is a list of field names (e.g. "InitialPollDelay") to include in
  2254  	// API requests with the JSON null value. By default, fields with empty values
  2255  	// are omitted from API requests. See
  2256  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
  2257  	NullFields []string `json:"-"`
  2258  }
  2259  
  2260  func (s *LongRunning) MarshalJSON() ([]byte, error) {
  2261  	type NoMethod LongRunning
  2262  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
  2263  }
  2264  
  2265  func (s *LongRunning) UnmarshalJSON(data []byte) error {
  2266  	type NoMethod LongRunning
  2267  	var s1 struct {
  2268  		PollDelayMultiplier gensupport.JSONFloat64 `json:"pollDelayMultiplier"`
  2269  		*NoMethod
  2270  	}
  2271  	s1.NoMethod = (*NoMethod)(s)
  2272  	if err := json.Unmarshal(data, &s1); err != nil {
  2273  		return err
  2274  	}
  2275  	s.PollDelayMultiplier = float64(s1.PollDelayMultiplier)
  2276  	return nil
  2277  }
  2278  
  2279  // Method: Method represents a method of an API interface.
  2280  type Method struct {
  2281  	// Name: The simple name of this method.
  2282  	Name string `json:"name,omitempty"`
  2283  	// Options: Any metadata attached to the method.
  2284  	Options []*Option `json:"options,omitempty"`
  2285  	// RequestStreaming: If true, the request is streamed.
  2286  	RequestStreaming bool `json:"requestStreaming,omitempty"`
  2287  	// RequestTypeUrl: A URL of the input message type.
  2288  	RequestTypeUrl string `json:"requestTypeUrl,omitempty"`
  2289  	// ResponseStreaming: If true, the response is streamed.
  2290  	ResponseStreaming bool `json:"responseStreaming,omitempty"`
  2291  	// ResponseTypeUrl: The URL of the output message type.
  2292  	ResponseTypeUrl string `json:"responseTypeUrl,omitempty"`
  2293  	// Syntax: The source syntax of this method.
  2294  	//
  2295  	// Possible values:
  2296  	//   "SYNTAX_PROTO2" - Syntax `proto2`.
  2297  	//   "SYNTAX_PROTO3" - Syntax `proto3`.
  2298  	//   "SYNTAX_EDITIONS" - Syntax `editions`.
  2299  	Syntax string `json:"syntax,omitempty"`
  2300  	// ForceSendFields is a list of field names (e.g. "Name") to unconditionally
  2301  	// include in API requests. By default, fields with empty or default values are
  2302  	// omitted from API requests. See
  2303  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
  2304  	// details.
  2305  	ForceSendFields []string `json:"-"`
  2306  	// NullFields is a list of field names (e.g. "Name") to include in API requests
  2307  	// with the JSON null value. By default, fields with empty values are omitted
  2308  	// from API requests. See
  2309  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
  2310  	NullFields []string `json:"-"`
  2311  }
  2312  
  2313  func (s *Method) MarshalJSON() ([]byte, error) {
  2314  	type NoMethod Method
  2315  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
  2316  }
  2317  
  2318  // MethodPolicy: Defines policies applying to an RPC method.
  2319  type MethodPolicy struct {
  2320  	// RequestPolicies: Policies that are applicable to the request message.
  2321  	RequestPolicies []*FieldPolicy `json:"requestPolicies,omitempty"`
  2322  	// Selector: Selects a method to which these policies should be enforced, for
  2323  	// example, "google.pubsub.v1.Subscriber.CreateSubscription". Refer to selector
  2324  	// for syntax details. NOTE: This field must not be set in the proto
  2325  	// annotation. It will be automatically filled by the service config compiler .
  2326  	Selector string `json:"selector,omitempty"`
  2327  	// ForceSendFields is a list of field names (e.g. "RequestPolicies") to
  2328  	// unconditionally include in API requests. By default, fields with empty or
  2329  	// default values are omitted from API requests. See
  2330  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
  2331  	// details.
  2332  	ForceSendFields []string `json:"-"`
  2333  	// NullFields is a list of field names (e.g. "RequestPolicies") to include in
  2334  	// API requests with the JSON null value. By default, fields with empty values
  2335  	// are omitted from API requests. See
  2336  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
  2337  	NullFields []string `json:"-"`
  2338  }
  2339  
  2340  func (s *MethodPolicy) MarshalJSON() ([]byte, error) {
  2341  	type NoMethod MethodPolicy
  2342  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
  2343  }
  2344  
  2345  // MethodSettings: Describes the generator configuration for a method.
  2346  type MethodSettings struct {
  2347  	// AutoPopulatedFields: List of top-level fields of the request message, that
  2348  	// should be automatically populated by the client libraries based on their
  2349  	// (google.api.field_info).format. Currently supported format: UUID4. Example
  2350  	// of a YAML configuration: publishing: method_settings: - selector:
  2351  	// google.example.v1.ExampleService.CreateExample auto_populated_fields: -
  2352  	// request_id
  2353  	AutoPopulatedFields []string `json:"autoPopulatedFields,omitempty"`
  2354  	// LongRunning: Describes settings to use for long-running operations when
  2355  	// generating API methods for RPCs. Complements RPCs that use the annotations
  2356  	// in google/longrunning/operations.proto. Example of a YAML configuration::
  2357  	// publishing: method_settings: - selector:
  2358  	// google.cloud.speech.v2.Speech.BatchRecognize long_running:
  2359  	// initial_poll_delay: 60s # 1 minute poll_delay_multiplier: 1.5
  2360  	// max_poll_delay: 360s # 6 minutes total_poll_timeout: 54000s # 90 minutes
  2361  	LongRunning *LongRunning `json:"longRunning,omitempty"`
  2362  	// Selector: The fully qualified name of the method, for which the options
  2363  	// below apply. This is used to find the method to apply the options. Example:
  2364  	// publishing: method_settings: - selector:
  2365  	// google.storage.control.v2.StorageControl.CreateFolder # method settings for
  2366  	// CreateFolder...
  2367  	Selector string `json:"selector,omitempty"`
  2368  	// ForceSendFields is a list of field names (e.g. "AutoPopulatedFields") to
  2369  	// unconditionally include in API requests. By default, fields with empty or
  2370  	// default values are omitted from API requests. See
  2371  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
  2372  	// details.
  2373  	ForceSendFields []string `json:"-"`
  2374  	// NullFields is a list of field names (e.g. "AutoPopulatedFields") to include
  2375  	// in API requests with the JSON null value. By default, fields with empty
  2376  	// values are omitted from API requests. See
  2377  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
  2378  	NullFields []string `json:"-"`
  2379  }
  2380  
  2381  func (s *MethodSettings) MarshalJSON() ([]byte, error) {
  2382  	type NoMethod MethodSettings
  2383  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
  2384  }
  2385  
  2386  // MetricDescriptor: Defines a metric type and its schema. Once a metric
  2387  // descriptor is created, deleting or altering it stops data collection and
  2388  // makes the metric type's existing data unusable.
  2389  type MetricDescriptor struct {
  2390  	// Description: A detailed description of the metric, which can be used in
  2391  	// documentation.
  2392  	Description string `json:"description,omitempty"`
  2393  	// DisplayName: A concise name for the metric, which can be displayed in user
  2394  	// interfaces. Use sentence case without an ending period, for example "Request
  2395  	// count". This field is optional but it is recommended to be set for any
  2396  	// metrics associated with user-visible concepts, such as Quota.
  2397  	DisplayName string `json:"displayName,omitempty"`
  2398  	// Labels: The set of labels that can be used to describe a specific instance
  2399  	// of this metric type. For example, the
  2400  	// `appengine.googleapis.com/http/server/response_latencies` metric type has a
  2401  	// label for the HTTP response code, `response_code`, so you can look at
  2402  	// latencies for successful responses or just for responses that failed.
  2403  	Labels []*LabelDescriptor `json:"labels,omitempty"`
  2404  	// LaunchStage: Optional. The launch stage of the metric definition.
  2405  	//
  2406  	// Possible values:
  2407  	//   "LAUNCH_STAGE_UNSPECIFIED" - Do not use this default value.
  2408  	//   "UNIMPLEMENTED" - The feature is not yet implemented. Users can not use
  2409  	// it.
  2410  	//   "PRELAUNCH" - Prelaunch features are hidden from users and are only
  2411  	// visible internally.
  2412  	//   "EARLY_ACCESS" - Early Access features are limited to a closed group of
  2413  	// testers. To use these features, you must sign up in advance and sign a
  2414  	// Trusted Tester agreement (which includes confidentiality provisions). These
  2415  	// features may be unstable, changed in backward-incompatible ways, and are not
  2416  	// guaranteed to be released.
  2417  	//   "ALPHA" - Alpha is a limited availability test for releases before they
  2418  	// are cleared for widespread use. By Alpha, all significant design issues are
  2419  	// resolved and we are in the process of verifying functionality. Alpha
  2420  	// customers need to apply for access, agree to applicable terms, and have
  2421  	// their projects allowlisted. Alpha releases don't have to be feature
  2422  	// complete, no SLAs are provided, and there are no technical support
  2423  	// obligations, but they will be far enough along that customers can actually
  2424  	// use them in test environments or for limited-use tests -- just like they
  2425  	// would in normal production cases.
  2426  	//   "BETA" - Beta is the point at which we are ready to open a release for any
  2427  	// customer to use. There are no SLA or technical support obligations in a Beta
  2428  	// release. Products will be complete from a feature perspective, but may have
  2429  	// some open outstanding issues. Beta releases are suitable for limited
  2430  	// production use cases.
  2431  	//   "GA" - GA features are open to all developers and are considered stable
  2432  	// and fully qualified for production use.
  2433  	//   "DEPRECATED" - Deprecated features are scheduled to be shut down and
  2434  	// removed. For more information, see the "Deprecation Policy" section of our
  2435  	// [Terms of Service](https://cloud.google.com/terms/) and the [Google Cloud
  2436  	// Platform Subject to the Deprecation
  2437  	// Policy](https://cloud.google.com/terms/deprecation) documentation.
  2438  	LaunchStage string `json:"launchStage,omitempty"`
  2439  	// Metadata: Optional. Metadata which can be used to guide usage of the metric.
  2440  	Metadata *MetricDescriptorMetadata `json:"metadata,omitempty"`
  2441  	// MetricKind: Whether the metric records instantaneous values, changes to a
  2442  	// value, etc. Some combinations of `metric_kind` and `value_type` might not be
  2443  	// supported.
  2444  	//
  2445  	// Possible values:
  2446  	//   "METRIC_KIND_UNSPECIFIED" - Do not use this default value.
  2447  	//   "GAUGE" - An instantaneous measurement of a value.
  2448  	//   "DELTA" - The change in a value during a time interval.
  2449  	//   "CUMULATIVE" - A value accumulated over a time interval. Cumulative
  2450  	// measurements in a time series should have the same start time and increasing
  2451  	// end times, until an event resets the cumulative value to zero and sets a new
  2452  	// start time for the following points.
  2453  	MetricKind string `json:"metricKind,omitempty"`
  2454  	// MonitoredResourceTypes: Read-only. If present, then a time series, which is
  2455  	// identified partially by a metric type and a MonitoredResourceDescriptor,
  2456  	// that is associated with this metric type can only be associated with one of
  2457  	// the monitored resource types listed here.
  2458  	MonitoredResourceTypes []string `json:"monitoredResourceTypes,omitempty"`
  2459  	// Name: The resource name of the metric descriptor.
  2460  	Name string `json:"name,omitempty"`
  2461  	// Type: The metric type, including its DNS name prefix. The type is not
  2462  	// URL-encoded. All user-defined metric types have the DNS name
  2463  	// `custom.googleapis.com` or `external.googleapis.com`. Metric types should
  2464  	// use a natural hierarchical grouping. For example:
  2465  	// "custom.googleapis.com/invoice/paid/amount"
  2466  	// "external.googleapis.com/prometheus/up"
  2467  	// "appengine.googleapis.com/http/server/response_latencies"
  2468  	Type string `json:"type,omitempty"`
  2469  	// Unit: The units in which the metric value is reported. It is only applicable
  2470  	// if the `value_type` is `INT64`, `DOUBLE`, or `DISTRIBUTION`. The `unit`
  2471  	// defines the representation of the stored metric values. Different systems
  2472  	// might scale the values to be more easily displayed (so a value of `0.02kBy`
  2473  	// _might_ be displayed as `20By`, and a value of `3523kBy` _might_ be
  2474  	// displayed as `3.5MBy`). However, if the `unit` is `kBy`, then the value of
  2475  	// the metric is always in thousands of bytes, no matter how it might be
  2476  	// displayed. If you want a custom metric to record the exact number of
  2477  	// CPU-seconds used by a job, you can create an `INT64 CUMULATIVE` metric whose
  2478  	// `unit` is `s{CPU}` (or equivalently `1s{CPU}` or just `s`). If the job uses
  2479  	// 12,005 CPU-seconds, then the value is written as `12005`. Alternatively, if
  2480  	// you want a custom metric to record data in a more granular way, you can
  2481  	// create a `DOUBLE CUMULATIVE` metric whose `unit` is `ks{CPU}`, and then
  2482  	// write the value `12.005` (which is `12005/1000`), or use `Kis{CPU}` and
  2483  	// write `11.723` (which is `12005/1024`). The supported units are a subset of
  2484  	// The Unified Code for Units of Measure (https://unitsofmeasure.org/ucum.html)
  2485  	// standard: **Basic units (UNIT)** * `bit` bit * `By` byte * `s` second *
  2486  	// `min` minute * `h` hour * `d` day * `1` dimensionless **Prefixes (PREFIX)**
  2487  	// * `k` kilo (10^3) * `M` mega (10^6) * `G` giga (10^9) * `T` tera (10^12) *
  2488  	// `P` peta (10^15) * `E` exa (10^18) * `Z` zetta (10^21) * `Y` yotta (10^24) *
  2489  	// `m` milli (10^-3) * `u` micro (10^-6) * `n` nano (10^-9) * `p` pico (10^-12)
  2490  	// * `f` femto (10^-15) * `a` atto (10^-18) * `z` zepto (10^-21) * `y` yocto
  2491  	// (10^-24) * `Ki` kibi (2^10) * `Mi` mebi (2^20) * `Gi` gibi (2^30) * `Ti`
  2492  	// tebi (2^40) * `Pi` pebi (2^50) **Grammar** The grammar also includes these
  2493  	// connectors: * `/` division or ratio (as an infix operator). For examples,
  2494  	// `kBy/{email}` or `MiBy/10ms` (although you should almost never have `/s` in
  2495  	// a metric `unit`; rates should always be computed at query time from the
  2496  	// underlying cumulative or delta value). * `.` multiplication or composition
  2497  	// (as an infix operator). For examples, `GBy.d` or `k{watt}.h`. The grammar
  2498  	// for a unit is as follows: Expression = Component { "." Component } { "/"
  2499  	// Component } ; Component = ( [ PREFIX ] UNIT | "%" ) [ Annotation ] |
  2500  	// Annotation | "1" ; Annotation = "{" NAME "}" ; Notes: * `Annotation` is just
  2501  	// a comment if it follows a `UNIT`. If the annotation is used alone, then the
  2502  	// unit is equivalent to `1`. For examples, `{request}/s == 1/s`,
  2503  	// `By{transmitted}/s == By/s`. * `NAME` is a sequence of non-blank printable
  2504  	// ASCII characters not containing `{` or `}`. * `1` represents a unitary
  2505  	// dimensionless unit (https://en.wikipedia.org/wiki/Dimensionless_quantity) of
  2506  	// 1, such as in `1/s`. It is typically used when none of the basic units are
  2507  	// appropriate. For example, "new users per day" can be represented as `1/d` or
  2508  	// `{new-users}/d` (and a metric value `5` would mean "5 new users).
  2509  	// Alternatively, "thousands of page views per day" would be represented as
  2510  	// `1000/d` or `k1/d` or `k{page_views}/d` (and a metric value of `5.3` would
  2511  	// mean "5300 page views per day"). * `%` represents dimensionless value of
  2512  	// 1/100, and annotates values giving a percentage (so the metric values are
  2513  	// typically in the range of 0..100, and a metric value `3` means "3 percent").
  2514  	// * `10^2.%` indicates a metric contains a ratio, typically in the range 0..1,
  2515  	// that will be multiplied by 100 and displayed as a percentage (so a metric
  2516  	// value `0.03` means "3 percent").
  2517  	Unit string `json:"unit,omitempty"`
  2518  	// ValueType: Whether the measurement is an integer, a floating-point number,
  2519  	// etc. Some combinations of `metric_kind` and `value_type` might not be
  2520  	// supported.
  2521  	//
  2522  	// Possible values:
  2523  	//   "VALUE_TYPE_UNSPECIFIED" - Do not use this default value.
  2524  	//   "BOOL" - The value is a boolean. This value type can be used only if the
  2525  	// metric kind is `GAUGE`.
  2526  	//   "INT64" - The value is a signed 64-bit integer.
  2527  	//   "DOUBLE" - The value is a double precision floating point number.
  2528  	//   "STRING" - The value is a text string. This value type can be used only if
  2529  	// the metric kind is `GAUGE`.
  2530  	//   "DISTRIBUTION" - The value is a `Distribution`.
  2531  	//   "MONEY" - The value is money.
  2532  	ValueType string `json:"valueType,omitempty"`
  2533  	// ForceSendFields is a list of field names (e.g. "Description") to
  2534  	// unconditionally include in API requests. By default, fields with empty or
  2535  	// default values are omitted from API requests. See
  2536  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
  2537  	// details.
  2538  	ForceSendFields []string `json:"-"`
  2539  	// NullFields is a list of field names (e.g. "Description") to include in API
  2540  	// requests with the JSON null value. By default, fields with empty values are
  2541  	// omitted from API requests. See
  2542  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
  2543  	NullFields []string `json:"-"`
  2544  }
  2545  
  2546  func (s *MetricDescriptor) MarshalJSON() ([]byte, error) {
  2547  	type NoMethod MetricDescriptor
  2548  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
  2549  }
  2550  
  2551  // MetricDescriptorMetadata: Additional annotations that can be used to guide
  2552  // the usage of a metric.
  2553  type MetricDescriptorMetadata struct {
  2554  	// IngestDelay: The delay of data points caused by ingestion. Data points older
  2555  	// than this age are guaranteed to be ingested and available to be read,
  2556  	// excluding data loss due to errors.
  2557  	IngestDelay string `json:"ingestDelay,omitempty"`
  2558  	// LaunchStage: Deprecated. Must use the MetricDescriptor.launch_stage instead.
  2559  	//
  2560  	// Possible values:
  2561  	//   "LAUNCH_STAGE_UNSPECIFIED" - Do not use this default value.
  2562  	//   "UNIMPLEMENTED" - The feature is not yet implemented. Users can not use
  2563  	// it.
  2564  	//   "PRELAUNCH" - Prelaunch features are hidden from users and are only
  2565  	// visible internally.
  2566  	//   "EARLY_ACCESS" - Early Access features are limited to a closed group of
  2567  	// testers. To use these features, you must sign up in advance and sign a
  2568  	// Trusted Tester agreement (which includes confidentiality provisions). These
  2569  	// features may be unstable, changed in backward-incompatible ways, and are not
  2570  	// guaranteed to be released.
  2571  	//   "ALPHA" - Alpha is a limited availability test for releases before they
  2572  	// are cleared for widespread use. By Alpha, all significant design issues are
  2573  	// resolved and we are in the process of verifying functionality. Alpha
  2574  	// customers need to apply for access, agree to applicable terms, and have
  2575  	// their projects allowlisted. Alpha releases don't have to be feature
  2576  	// complete, no SLAs are provided, and there are no technical support
  2577  	// obligations, but they will be far enough along that customers can actually
  2578  	// use them in test environments or for limited-use tests -- just like they
  2579  	// would in normal production cases.
  2580  	//   "BETA" - Beta is the point at which we are ready to open a release for any
  2581  	// customer to use. There are no SLA or technical support obligations in a Beta
  2582  	// release. Products will be complete from a feature perspective, but may have
  2583  	// some open outstanding issues. Beta releases are suitable for limited
  2584  	// production use cases.
  2585  	//   "GA" - GA features are open to all developers and are considered stable
  2586  	// and fully qualified for production use.
  2587  	//   "DEPRECATED" - Deprecated features are scheduled to be shut down and
  2588  	// removed. For more information, see the "Deprecation Policy" section of our
  2589  	// [Terms of Service](https://cloud.google.com/terms/) and the [Google Cloud
  2590  	// Platform Subject to the Deprecation
  2591  	// Policy](https://cloud.google.com/terms/deprecation) documentation.
  2592  	LaunchStage string `json:"launchStage,omitempty"`
  2593  	// SamplePeriod: The sampling period of metric data points. For metrics which
  2594  	// are written periodically, consecutive data points are stored at this time
  2595  	// interval, excluding data loss due to errors. Metrics with a higher
  2596  	// granularity have a smaller sampling period.
  2597  	SamplePeriod string `json:"samplePeriod,omitempty"`
  2598  	// ForceSendFields is a list of field names (e.g. "IngestDelay") to
  2599  	// unconditionally include in API requests. By default, fields with empty or
  2600  	// default values are omitted from API requests. See
  2601  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
  2602  	// details.
  2603  	ForceSendFields []string `json:"-"`
  2604  	// NullFields is a list of field names (e.g. "IngestDelay") to include in API
  2605  	// requests with the JSON null value. By default, fields with empty values are
  2606  	// omitted from API requests. See
  2607  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
  2608  	NullFields []string `json:"-"`
  2609  }
  2610  
  2611  func (s *MetricDescriptorMetadata) MarshalJSON() ([]byte, error) {
  2612  	type NoMethod MetricDescriptorMetadata
  2613  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
  2614  }
  2615  
  2616  // MetricRule: Bind API methods to metrics. Binding a method to a metric causes
  2617  // that metric's configured quota behaviors to apply to the method call.
  2618  type MetricRule struct {
  2619  	// MetricCosts: Metrics to update when the selected methods are called, and the
  2620  	// associated cost applied to each metric. The key of the map is the metric
  2621  	// name, and the values are the amount increased for the metric against which
  2622  	// the quota limits are defined. The value must not be negative.
  2623  	MetricCosts map[string]string `json:"metricCosts,omitempty"`
  2624  	// Selector: Selects the methods to which this rule applies. Refer to selector
  2625  	// for syntax details.
  2626  	Selector string `json:"selector,omitempty"`
  2627  	// ForceSendFields is a list of field names (e.g. "MetricCosts") to
  2628  	// unconditionally include in API requests. By default, fields with empty or
  2629  	// default values are omitted from API requests. See
  2630  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
  2631  	// details.
  2632  	ForceSendFields []string `json:"-"`
  2633  	// NullFields is a list of field names (e.g. "MetricCosts") to include in API
  2634  	// requests with the JSON null value. By default, fields with empty values are
  2635  	// omitted from API requests. See
  2636  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
  2637  	NullFields []string `json:"-"`
  2638  }
  2639  
  2640  func (s *MetricRule) MarshalJSON() ([]byte, error) {
  2641  	type NoMethod MetricRule
  2642  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
  2643  }
  2644  
  2645  // Mixin: Declares an API Interface to be included in this interface. The
  2646  // including interface must redeclare all the methods from the included
  2647  // interface, but documentation and options are inherited as follows: - If
  2648  // after comment and whitespace stripping, the documentation string of the
  2649  // redeclared method is empty, it will be inherited from the original method. -
  2650  // Each annotation belonging to the service config (http, visibility) which is
  2651  // not set in the redeclared method will be inherited. - If an http annotation
  2652  // is inherited, the path pattern will be modified as follows. Any version
  2653  // prefix will be replaced by the version of the including interface plus the
  2654  // root path if specified. Example of a simple mixin: package google.acl.v1;
  2655  // service AccessControl { // Get the underlying ACL object. rpc
  2656  // GetAcl(GetAclRequest) returns (Acl) { option (google.api.http).get =
  2657  // "/v1/{resource=**}:getAcl"; } } package google.storage.v2; service Storage {
  2658  // // rpc GetAcl(GetAclRequest) returns (Acl); // Get a data record. rpc
  2659  // GetData(GetDataRequest) returns (Data) { option (google.api.http).get =
  2660  // "/v2/{resource=**}"; } } Example of a mixin configuration: apis: - name:
  2661  // google.storage.v2.Storage mixins: - name: google.acl.v1.AccessControl The
  2662  // mixin construct implies that all methods in `AccessControl` are also
  2663  // declared with same name and request/response types in `Storage`. A
  2664  // documentation generator or annotation processor will see the effective
  2665  // `Storage.GetAcl` method after inherting documentation and annotations as
  2666  // follows: service Storage { // Get the underlying ACL object. rpc
  2667  // GetAcl(GetAclRequest) returns (Acl) { option (google.api.http).get =
  2668  // "/v2/{resource=**}:getAcl"; } ... } Note how the version in the path pattern
  2669  // changed from `v1` to `v2`. If the `root` field in the mixin is specified, it
  2670  // should be a relative path under which inherited HTTP paths are placed.
  2671  // Example: apis: - name: google.storage.v2.Storage mixins: - name:
  2672  // google.acl.v1.AccessControl root: acls This implies the following inherited
  2673  // HTTP annotation: service Storage { // Get the underlying ACL object. rpc
  2674  // GetAcl(GetAclRequest) returns (Acl) { option (google.api.http).get =
  2675  // "/v2/acls/{resource=**}:getAcl"; } ... }
  2676  type Mixin struct {
  2677  	// Name: The fully qualified name of the interface which is included.
  2678  	Name string `json:"name,omitempty"`
  2679  	// Root: If non-empty specifies a path under which inherited HTTP paths are
  2680  	// rooted.
  2681  	Root string `json:"root,omitempty"`
  2682  	// ForceSendFields is a list of field names (e.g. "Name") to unconditionally
  2683  	// include in API requests. By default, fields with empty or default values are
  2684  	// omitted from API requests. See
  2685  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
  2686  	// details.
  2687  	ForceSendFields []string `json:"-"`
  2688  	// NullFields is a list of field names (e.g. "Name") to include in API requests
  2689  	// with the JSON null value. By default, fields with empty values are omitted
  2690  	// from API requests. See
  2691  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
  2692  	NullFields []string `json:"-"`
  2693  }
  2694  
  2695  func (s *Mixin) MarshalJSON() ([]byte, error) {
  2696  	type NoMethod Mixin
  2697  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
  2698  }
  2699  
  2700  // MonitoredResourceDescriptor: An object that describes the schema of a
  2701  // MonitoredResource object using a type name and a set of labels. For example,
  2702  // the monitored resource descriptor for Google Compute Engine VM instances has
  2703  // a type of "gce_instance" and specifies the use of the labels
  2704  // "instance_id" and "zone" to identify particular VM instances. Different
  2705  // APIs can support different monitored resource types. APIs generally provide
  2706  // a `list` method that returns the monitored resource descriptors used by the
  2707  // API.
  2708  type MonitoredResourceDescriptor struct {
  2709  	// Description: Optional. A detailed description of the monitored resource type
  2710  	// that might be used in documentation.
  2711  	Description string `json:"description,omitempty"`
  2712  	// DisplayName: Optional. A concise name for the monitored resource type that
  2713  	// might be displayed in user interfaces. It should be a Title Cased Noun
  2714  	// Phrase, without any article or other determiners. For example, "Google
  2715  	// Cloud SQL Database".
  2716  	DisplayName string `json:"displayName,omitempty"`
  2717  	// Labels: Required. A set of labels used to describe instances of this
  2718  	// monitored resource type. For example, an individual Google Cloud SQL
  2719  	// database is identified by values for the labels "database_id" and
  2720  	// "zone".
  2721  	Labels []*LabelDescriptor `json:"labels,omitempty"`
  2722  	// LaunchStage: Optional. The launch stage of the monitored resource
  2723  	// definition.
  2724  	//
  2725  	// Possible values:
  2726  	//   "LAUNCH_STAGE_UNSPECIFIED" - Do not use this default value.
  2727  	//   "UNIMPLEMENTED" - The feature is not yet implemented. Users can not use
  2728  	// it.
  2729  	//   "PRELAUNCH" - Prelaunch features are hidden from users and are only
  2730  	// visible internally.
  2731  	//   "EARLY_ACCESS" - Early Access features are limited to a closed group of
  2732  	// testers. To use these features, you must sign up in advance and sign a
  2733  	// Trusted Tester agreement (which includes confidentiality provisions). These
  2734  	// features may be unstable, changed in backward-incompatible ways, and are not
  2735  	// guaranteed to be released.
  2736  	//   "ALPHA" - Alpha is a limited availability test for releases before they
  2737  	// are cleared for widespread use. By Alpha, all significant design issues are
  2738  	// resolved and we are in the process of verifying functionality. Alpha
  2739  	// customers need to apply for access, agree to applicable terms, and have
  2740  	// their projects allowlisted. Alpha releases don't have to be feature
  2741  	// complete, no SLAs are provided, and there are no technical support
  2742  	// obligations, but they will be far enough along that customers can actually
  2743  	// use them in test environments or for limited-use tests -- just like they
  2744  	// would in normal production cases.
  2745  	//   "BETA" - Beta is the point at which we are ready to open a release for any
  2746  	// customer to use. There are no SLA or technical support obligations in a Beta
  2747  	// release. Products will be complete from a feature perspective, but may have
  2748  	// some open outstanding issues. Beta releases are suitable for limited
  2749  	// production use cases.
  2750  	//   "GA" - GA features are open to all developers and are considered stable
  2751  	// and fully qualified for production use.
  2752  	//   "DEPRECATED" - Deprecated features are scheduled to be shut down and
  2753  	// removed. For more information, see the "Deprecation Policy" section of our
  2754  	// [Terms of Service](https://cloud.google.com/terms/) and the [Google Cloud
  2755  	// Platform Subject to the Deprecation
  2756  	// Policy](https://cloud.google.com/terms/deprecation) documentation.
  2757  	LaunchStage string `json:"launchStage,omitempty"`
  2758  	// Name: Optional. The resource name of the monitored resource descriptor:
  2759  	// "projects/{project_id}/monitoredResourceDescriptors/{type}" where {type}
  2760  	// is the value of the `type` field in this object and {project_id} is a
  2761  	// project ID that provides API-specific context for accessing the type. APIs
  2762  	// that do not use project information can use the resource name format
  2763  	// "monitoredResourceDescriptors/{type}".
  2764  	Name string `json:"name,omitempty"`
  2765  	// Type: Required. The monitored resource type. For example, the type
  2766  	// "cloudsql_database" represents databases in Google Cloud SQL. For a list
  2767  	// of types, see Monitored resource types
  2768  	// (https://cloud.google.com/monitoring/api/resources) and Logging resource
  2769  	// types (https://cloud.google.com/logging/docs/api/v2/resource-list).
  2770  	Type string `json:"type,omitempty"`
  2771  	// ForceSendFields is a list of field names (e.g. "Description") to
  2772  	// unconditionally include in API requests. By default, fields with empty or
  2773  	// default values are omitted from API requests. See
  2774  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
  2775  	// details.
  2776  	ForceSendFields []string `json:"-"`
  2777  	// NullFields is a list of field names (e.g. "Description") to include in API
  2778  	// requests with the JSON null value. By default, fields with empty values are
  2779  	// omitted from API requests. See
  2780  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
  2781  	NullFields []string `json:"-"`
  2782  }
  2783  
  2784  func (s *MonitoredResourceDescriptor) MarshalJSON() ([]byte, error) {
  2785  	type NoMethod MonitoredResourceDescriptor
  2786  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
  2787  }
  2788  
  2789  // Monitoring: Monitoring configuration of the service. The example below shows
  2790  // how to configure monitored resources and metrics for monitoring. In the
  2791  // example, a monitored resource and two metrics are defined. The
  2792  // `library.googleapis.com/book/returned_count` metric is sent to both producer
  2793  // and consumer projects, whereas the `library.googleapis.com/book/num_overdue`
  2794  // metric is only sent to the consumer project. monitored_resources: - type:
  2795  // library.googleapis.com/Branch display_name: "Library Branch" description: "A
  2796  // branch of a library." launch_stage: GA labels: - key: resource_container
  2797  // description: "The Cloud container (ie. project id) for the Branch." - key:
  2798  // location description: "The location of the library branch." - key: branch_id
  2799  // description: "The id of the branch." metrics: - name:
  2800  // library.googleapis.com/book/returned_count display_name: "Books Returned"
  2801  // description: "The count of books that have been returned." launch_stage: GA
  2802  // metric_kind: DELTA value_type: INT64 unit: "1" labels: - key: customer_id
  2803  // description: "The id of the customer." - name:
  2804  // library.googleapis.com/book/num_overdue display_name: "Books Overdue"
  2805  // description: "The current number of overdue books." launch_stage: GA
  2806  // metric_kind: GAUGE value_type: INT64 unit: "1" labels: - key: customer_id
  2807  // description: "The id of the customer." monitoring: producer_destinations: -
  2808  // monitored_resource: library.googleapis.com/Branch metrics: -
  2809  // library.googleapis.com/book/returned_count consumer_destinations: -
  2810  // monitored_resource: library.googleapis.com/Branch metrics: -
  2811  // library.googleapis.com/book/returned_count -
  2812  // library.googleapis.com/book/num_overdue
  2813  type Monitoring struct {
  2814  	// ConsumerDestinations: Monitoring configurations for sending metrics to the
  2815  	// consumer project. There can be multiple consumer destinations. A monitored
  2816  	// resource type may appear in multiple monitoring destinations if different
  2817  	// aggregations are needed for different sets of metrics associated with that
  2818  	// monitored resource type. A monitored resource and metric pair may only be
  2819  	// used once in the Monitoring configuration.
  2820  	ConsumerDestinations []*MonitoringDestination `json:"consumerDestinations,omitempty"`
  2821  	// ProducerDestinations: Monitoring configurations for sending metrics to the
  2822  	// producer project. There can be multiple producer destinations. A monitored
  2823  	// resource type may appear in multiple monitoring destinations if different
  2824  	// aggregations are needed for different sets of metrics associated with that
  2825  	// monitored resource type. A monitored resource and metric pair may only be
  2826  	// used once in the Monitoring configuration.
  2827  	ProducerDestinations []*MonitoringDestination `json:"producerDestinations,omitempty"`
  2828  	// ForceSendFields is a list of field names (e.g. "ConsumerDestinations") to
  2829  	// unconditionally include in API requests. By default, fields with empty or
  2830  	// default values are omitted from API requests. See
  2831  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
  2832  	// details.
  2833  	ForceSendFields []string `json:"-"`
  2834  	// NullFields is a list of field names (e.g. "ConsumerDestinations") to include
  2835  	// in API requests with the JSON null value. By default, fields with empty
  2836  	// values are omitted from API requests. See
  2837  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
  2838  	NullFields []string `json:"-"`
  2839  }
  2840  
  2841  func (s *Monitoring) MarshalJSON() ([]byte, error) {
  2842  	type NoMethod Monitoring
  2843  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
  2844  }
  2845  
  2846  // MonitoringDestination: Configuration of a specific monitoring destination
  2847  // (the producer project or the consumer project).
  2848  type MonitoringDestination struct {
  2849  	// Metrics: Types of the metrics to report to this monitoring destination. Each
  2850  	// type must be defined in Service.metrics section.
  2851  	Metrics []string `json:"metrics,omitempty"`
  2852  	// MonitoredResource: The monitored resource type. The type must be defined in
  2853  	// Service.monitored_resources section.
  2854  	MonitoredResource string `json:"monitoredResource,omitempty"`
  2855  	// ForceSendFields is a list of field names (e.g. "Metrics") to unconditionally
  2856  	// include in API requests. By default, fields with empty or default values are
  2857  	// omitted from API requests. See
  2858  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
  2859  	// details.
  2860  	ForceSendFields []string `json:"-"`
  2861  	// NullFields is a list of field names (e.g. "Metrics") to include in API
  2862  	// requests with the JSON null value. By default, fields with empty values are
  2863  	// omitted from API requests. See
  2864  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
  2865  	NullFields []string `json:"-"`
  2866  }
  2867  
  2868  func (s *MonitoringDestination) MarshalJSON() ([]byte, error) {
  2869  	type NoMethod MonitoringDestination
  2870  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
  2871  }
  2872  
  2873  // NodeSettings: Settings for Node client libraries.
  2874  type NodeSettings struct {
  2875  	// Common: Some settings.
  2876  	Common *CommonLanguageSettings `json:"common,omitempty"`
  2877  	// ForceSendFields is a list of field names (e.g. "Common") to unconditionally
  2878  	// include in API requests. By default, fields with empty or default values are
  2879  	// omitted from API requests. See
  2880  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
  2881  	// details.
  2882  	ForceSendFields []string `json:"-"`
  2883  	// NullFields is a list of field names (e.g. "Common") to include in API
  2884  	// requests with the JSON null value. By default, fields with empty values are
  2885  	// omitted from API requests. See
  2886  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
  2887  	NullFields []string `json:"-"`
  2888  }
  2889  
  2890  func (s *NodeSettings) MarshalJSON() ([]byte, error) {
  2891  	type NoMethod NodeSettings
  2892  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
  2893  }
  2894  
  2895  // OAuthRequirements: OAuth scopes are a way to define data and permissions on
  2896  // data. For example, there are scopes defined for "Read-only access to Google
  2897  // Calendar" and "Access to Cloud Platform". Users can consent to a scope for
  2898  // an application, giving it permission to access that data on their behalf.
  2899  // OAuth scope specifications should be fairly coarse grained; a user will need
  2900  // to see and understand the text description of what your scope means. In most
  2901  // cases: use one or at most two OAuth scopes for an entire family of products.
  2902  // If your product has multiple APIs, you should probably be sharing the OAuth
  2903  // scope across all of those APIs. When you need finer grained OAuth consent
  2904  // screens: talk with your product management about how developers will use
  2905  // them in practice. Please note that even though each of the canonical scopes
  2906  // is enough for a request to be accepted and passed to the backend, a request
  2907  // can still fail due to the backend requiring additional scopes or
  2908  // permissions.
  2909  type OAuthRequirements struct {
  2910  	// CanonicalScopes: The list of publicly documented OAuth scopes that are
  2911  	// allowed access. An OAuth token containing any of these scopes will be
  2912  	// accepted. Example: canonical_scopes:
  2913  	// https://www.googleapis.com/auth/calendar,
  2914  	// https://www.googleapis.com/auth/calendar.read
  2915  	CanonicalScopes string `json:"canonicalScopes,omitempty"`
  2916  	// ForceSendFields is a list of field names (e.g. "CanonicalScopes") to
  2917  	// unconditionally include in API requests. By default, fields with empty or
  2918  	// default values are omitted from API requests. See
  2919  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
  2920  	// details.
  2921  	ForceSendFields []string `json:"-"`
  2922  	// NullFields is a list of field names (e.g. "CanonicalScopes") to include in
  2923  	// API requests with the JSON null value. By default, fields with empty values
  2924  	// are omitted from API requests. See
  2925  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
  2926  	NullFields []string `json:"-"`
  2927  }
  2928  
  2929  func (s *OAuthRequirements) MarshalJSON() ([]byte, error) {
  2930  	type NoMethod OAuthRequirements
  2931  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
  2932  }
  2933  
  2934  // Operation: This resource represents a long-running operation that is the
  2935  // result of a network API call.
  2936  type Operation struct {
  2937  	// Done: If the value is `false`, it means the operation is still in progress.
  2938  	// If `true`, the operation is completed, and either `error` or `response` is
  2939  	// available.
  2940  	Done bool `json:"done,omitempty"`
  2941  	// Error: The error result of the operation in case of failure or cancellation.
  2942  	Error *Status `json:"error,omitempty"`
  2943  	// Metadata: Service-specific metadata associated with the operation. It
  2944  	// typically contains progress information and common metadata such as create
  2945  	// time. Some services might not provide such metadata. Any method that returns
  2946  	// a long-running operation should document the metadata type, if any.
  2947  	Metadata googleapi.RawMessage `json:"metadata,omitempty"`
  2948  	// Name: The server-assigned name, which is only unique within the same service
  2949  	// that originally returns it. If you use the default HTTP mapping, the `name`
  2950  	// should be a resource name ending with `operations/{unique_id}`.
  2951  	Name string `json:"name,omitempty"`
  2952  	// Response: The normal, successful response of the operation. If the original
  2953  	// method returns no data on success, such as `Delete`, the response is
  2954  	// `google.protobuf.Empty`. If the original method is standard
  2955  	// `Get`/`Create`/`Update`, the response should be the resource. For other
  2956  	// methods, the response should have the type `XxxResponse`, where `Xxx` is the
  2957  	// original method name. For example, if the original method name is
  2958  	// `TakeSnapshot()`, the inferred response type is `TakeSnapshotResponse`.
  2959  	Response googleapi.RawMessage `json:"response,omitempty"`
  2960  
  2961  	// ServerResponse contains the HTTP response code and headers from the server.
  2962  	googleapi.ServerResponse `json:"-"`
  2963  	// ForceSendFields is a list of field names (e.g. "Done") to unconditionally
  2964  	// include in API requests. By default, fields with empty or default values are
  2965  	// omitted from API requests. See
  2966  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
  2967  	// details.
  2968  	ForceSendFields []string `json:"-"`
  2969  	// NullFields is a list of field names (e.g. "Done") to include in API requests
  2970  	// with the JSON null value. By default, fields with empty values are omitted
  2971  	// from API requests. See
  2972  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
  2973  	NullFields []string `json:"-"`
  2974  }
  2975  
  2976  func (s *Operation) MarshalJSON() ([]byte, error) {
  2977  	type NoMethod Operation
  2978  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
  2979  }
  2980  
  2981  // Option: A protocol buffer option, which can be attached to a message, field,
  2982  // enumeration, etc.
  2983  type Option struct {
  2984  	// Name: The option's name. For protobuf built-in options (options defined in
  2985  	// descriptor.proto), this is the short name. For example, "map_entry". For
  2986  	// custom options, it should be the fully-qualified name. For example,
  2987  	// "google.api.http".
  2988  	Name string `json:"name,omitempty"`
  2989  	// Value: The option's value packed in an Any message. If the value is a
  2990  	// primitive, the corresponding wrapper type defined in
  2991  	// google/protobuf/wrappers.proto should be used. If the value is an enum, it
  2992  	// should be stored as an int32 value using the google.protobuf.Int32Value
  2993  	// type.
  2994  	Value googleapi.RawMessage `json:"value,omitempty"`
  2995  	// ForceSendFields is a list of field names (e.g. "Name") to unconditionally
  2996  	// include in API requests. By default, fields with empty or default values are
  2997  	// omitted from API requests. See
  2998  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
  2999  	// details.
  3000  	ForceSendFields []string `json:"-"`
  3001  	// NullFields is a list of field names (e.g. "Name") to include in API requests
  3002  	// with the JSON null value. By default, fields with empty values are omitted
  3003  	// from API requests. See
  3004  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
  3005  	NullFields []string `json:"-"`
  3006  }
  3007  
  3008  func (s *Option) MarshalJSON() ([]byte, error) {
  3009  	type NoMethod Option
  3010  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
  3011  }
  3012  
  3013  // Page: Represents a documentation page. A page can contain subpages to
  3014  // represent nested documentation set structure.
  3015  type Page struct {
  3016  	// Content: The Markdown content of the page. You can use (== include {path}
  3017  	// ==) to include content from a Markdown file. The content can be used to
  3018  	// produce the documentation page such as HTML format page.
  3019  	Content string `json:"content,omitempty"`
  3020  	// Name: The name of the page. It will be used as an identity of the page to
  3021  	// generate URI of the page, text of the link to this page in navigation, etc.
  3022  	// The full page name (start from the root page name to this page concatenated
  3023  	// with `.`) can be used as reference to the page in your documentation. For
  3024  	// example: pages: - name: Tutorial content: (== include tutorial.md ==)
  3025  	// subpages: - name: Java content: (== include tutorial_java.md ==) You can
  3026  	// reference `Java` page using Markdown reference link syntax: `Java`.
  3027  	Name string `json:"name,omitempty"`
  3028  	// Subpages: Subpages of this page. The order of subpages specified here will
  3029  	// be honored in the generated docset.
  3030  	Subpages []*Page `json:"subpages,omitempty"`
  3031  	// ForceSendFields is a list of field names (e.g. "Content") to unconditionally
  3032  	// include in API requests. By default, fields with empty or default values are
  3033  	// omitted from API requests. See
  3034  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
  3035  	// details.
  3036  	ForceSendFields []string `json:"-"`
  3037  	// NullFields is a list of field names (e.g. "Content") to include in API
  3038  	// requests with the JSON null value. By default, fields with empty values are
  3039  	// omitted from API requests. See
  3040  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
  3041  	NullFields []string `json:"-"`
  3042  }
  3043  
  3044  func (s *Page) MarshalJSON() ([]byte, error) {
  3045  	type NoMethod Page
  3046  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
  3047  }
  3048  
  3049  // PartialDeleteConnectionMetadata: Metadata provided through GetOperation
  3050  // request for the LRO generated by Partial Delete Connection API
  3051  type PartialDeleteConnectionMetadata struct {
  3052  }
  3053  
  3054  // PeeredDnsDomain: DNS domain suffix for which requests originating in the
  3055  // producer VPC network are resolved in the associated consumer VPC network.
  3056  type PeeredDnsDomain struct {
  3057  	// DnsSuffix: The DNS domain name suffix e.g. `example.com.`. Cloud DNS
  3058  	// requires that a DNS suffix ends with a trailing dot.
  3059  	DnsSuffix string `json:"dnsSuffix,omitempty"`
  3060  	// Name: User assigned name for this resource. Must be unique within the
  3061  	// consumer network. The name must be 1-63 characters long, must begin with a
  3062  	// letter, end with a letter or digit, and only contain lowercase letters,
  3063  	// digits or dashes.
  3064  	Name string `json:"name,omitempty"`
  3065  	// ForceSendFields is a list of field names (e.g. "DnsSuffix") to
  3066  	// unconditionally include in API requests. By default, fields with empty or
  3067  	// default values are omitted from API requests. See
  3068  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
  3069  	// details.
  3070  	ForceSendFields []string `json:"-"`
  3071  	// NullFields is a list of field names (e.g. "DnsSuffix") to include in API
  3072  	// requests with the JSON null value. By default, fields with empty values are
  3073  	// omitted from API requests. See
  3074  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
  3075  	NullFields []string `json:"-"`
  3076  }
  3077  
  3078  func (s *PeeredDnsDomain) MarshalJSON() ([]byte, error) {
  3079  	type NoMethod PeeredDnsDomain
  3080  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
  3081  }
  3082  
  3083  // PeeredDnsDomainMetadata: Metadata provided through GetOperation request for
  3084  // the LRO generated by CreatePeeredDnsDomain API.
  3085  type PeeredDnsDomainMetadata struct {
  3086  }
  3087  
  3088  // PhpSettings: Settings for Php client libraries.
  3089  type PhpSettings struct {
  3090  	// Common: Some settings.
  3091  	Common *CommonLanguageSettings `json:"common,omitempty"`
  3092  	// ForceSendFields is a list of field names (e.g. "Common") to unconditionally
  3093  	// include in API requests. By default, fields with empty or default values are
  3094  	// omitted from API requests. See
  3095  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
  3096  	// details.
  3097  	ForceSendFields []string `json:"-"`
  3098  	// NullFields is a list of field names (e.g. "Common") to include in API
  3099  	// requests with the JSON null value. By default, fields with empty values are
  3100  	// omitted from API requests. See
  3101  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
  3102  	NullFields []string `json:"-"`
  3103  }
  3104  
  3105  func (s *PhpSettings) MarshalJSON() ([]byte, error) {
  3106  	type NoMethod PhpSettings
  3107  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
  3108  }
  3109  
  3110  // PolicyBinding: Grouping of IAM role and IAM member.
  3111  type PolicyBinding struct {
  3112  	// Member: Required. Member to bind the role with. See
  3113  	// /iam/docs/reference/rest/v1/Policy#Binding for how to format each member.
  3114  	// Eg. - user:myuser@mydomain.com -
  3115  	// serviceAccount:my-service-account@app.gserviceaccount.com
  3116  	Member string `json:"member,omitempty"`
  3117  	// Role: Required. Role to apply. Only allowlisted roles can be used at the
  3118  	// specified granularity. The role must be one of the following: -
  3119  	// 'roles/container.hostServiceAgentUser' applied on the shared VPC host
  3120  	// project - 'roles/compute.securityAdmin' applied on the shared VPC host
  3121  	// project - 'roles/compute.networkAdmin' applied on the shared VPC host
  3122  	// project - 'roles/compute.xpnAdmin' applied on the shared VPC host project -
  3123  	// 'roles/dns.admin' applied on the shared VPC host project
  3124  	Role string `json:"role,omitempty"`
  3125  	// ForceSendFields is a list of field names (e.g. "Member") to unconditionally
  3126  	// include in API requests. By default, fields with empty or default values are
  3127  	// omitted from API requests. See
  3128  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
  3129  	// details.
  3130  	ForceSendFields []string `json:"-"`
  3131  	// NullFields is a list of field names (e.g. "Member") to include in API
  3132  	// requests with the JSON null value. By default, fields with empty values are
  3133  	// omitted from API requests. See
  3134  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
  3135  	NullFields []string `json:"-"`
  3136  }
  3137  
  3138  func (s *PolicyBinding) MarshalJSON() ([]byte, error) {
  3139  	type NoMethod PolicyBinding
  3140  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
  3141  }
  3142  
  3143  // Publishing: This message configures the settings for publishing Google Cloud
  3144  // Client libraries (https://cloud.google.com/apis/docs/cloud-client-libraries)
  3145  // generated from the service config.
  3146  type Publishing struct {
  3147  	// ApiShortName: Used as a tracking tag when collecting data about the APIs
  3148  	// developer relations artifacts like docs, packages delivered to package
  3149  	// managers, etc. Example: "speech".
  3150  	ApiShortName string `json:"apiShortName,omitempty"`
  3151  	// CodeownerGithubTeams: GitHub teams to be added to CODEOWNERS in the
  3152  	// directory in GitHub containing source code for the client libraries for this
  3153  	// API.
  3154  	CodeownerGithubTeams []string `json:"codeownerGithubTeams,omitempty"`
  3155  	// DocTagPrefix: A prefix used in sample code when demarking regions to be
  3156  	// included in documentation.
  3157  	DocTagPrefix string `json:"docTagPrefix,omitempty"`
  3158  	// DocumentationUri: Link to product home page. Example:
  3159  	// https://cloud.google.com/asset-inventory/docs/overview
  3160  	DocumentationUri string `json:"documentationUri,omitempty"`
  3161  	// GithubLabel: GitHub label to apply to issues and pull requests opened for
  3162  	// this API.
  3163  	GithubLabel string `json:"githubLabel,omitempty"`
  3164  	// LibrarySettings: Client library settings. If the same version string appears
  3165  	// multiple times in this list, then the last one wins. Settings from earlier
  3166  	// settings with the same version string are discarded.
  3167  	LibrarySettings []*ClientLibrarySettings `json:"librarySettings,omitempty"`
  3168  	// MethodSettings: A list of API method settings, e.g. the behavior for methods
  3169  	// that use the long-running operation pattern.
  3170  	MethodSettings []*MethodSettings `json:"methodSettings,omitempty"`
  3171  	// NewIssueUri: Link to a *public* URI where users can report issues. Example:
  3172  	// https://issuetracker.google.com/issues/new?component=190865&template=1161103
  3173  	NewIssueUri string `json:"newIssueUri,omitempty"`
  3174  	// Organization: For whom the client library is being published.
  3175  	//
  3176  	// Possible values:
  3177  	//   "CLIENT_LIBRARY_ORGANIZATION_UNSPECIFIED" - Not useful.
  3178  	//   "CLOUD" - Google Cloud Platform Org.
  3179  	//   "ADS" - Ads (Advertising) Org.
  3180  	//   "PHOTOS" - Photos Org.
  3181  	//   "STREET_VIEW" - Street View Org.
  3182  	//   "SHOPPING" - Shopping Org.
  3183  	//   "GEO" - Geo Org.
  3184  	//   "GENERATIVE_AI" - Generative AI - https://developers.generativeai.google
  3185  	Organization string `json:"organization,omitempty"`
  3186  	// ProtoReferenceDocumentationUri: Optional link to proto reference
  3187  	// documentation. Example:
  3188  	// https://cloud.google.com/pubsub/lite/docs/reference/rpc
  3189  	ProtoReferenceDocumentationUri string `json:"protoReferenceDocumentationUri,omitempty"`
  3190  	// RestReferenceDocumentationUri: Optional link to REST reference
  3191  	// documentation. Example:
  3192  	// https://cloud.google.com/pubsub/lite/docs/reference/rest
  3193  	RestReferenceDocumentationUri string `json:"restReferenceDocumentationUri,omitempty"`
  3194  	// ForceSendFields is a list of field names (e.g. "ApiShortName") to
  3195  	// unconditionally include in API requests. By default, fields with empty or
  3196  	// default values are omitted from API requests. See
  3197  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
  3198  	// details.
  3199  	ForceSendFields []string `json:"-"`
  3200  	// NullFields is a list of field names (e.g. "ApiShortName") to include in API
  3201  	// requests with the JSON null value. By default, fields with empty values are
  3202  	// omitted from API requests. See
  3203  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
  3204  	NullFields []string `json:"-"`
  3205  }
  3206  
  3207  func (s *Publishing) MarshalJSON() ([]byte, error) {
  3208  	type NoMethod Publishing
  3209  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
  3210  }
  3211  
  3212  // PythonSettings: Settings for Python client libraries.
  3213  type PythonSettings struct {
  3214  	// Common: Some settings.
  3215  	Common *CommonLanguageSettings `json:"common,omitempty"`
  3216  	// ForceSendFields is a list of field names (e.g. "Common") to unconditionally
  3217  	// include in API requests. By default, fields with empty or default values are
  3218  	// omitted from API requests. See
  3219  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
  3220  	// details.
  3221  	ForceSendFields []string `json:"-"`
  3222  	// NullFields is a list of field names (e.g. "Common") to include in API
  3223  	// requests with the JSON null value. By default, fields with empty values are
  3224  	// omitted from API requests. See
  3225  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
  3226  	NullFields []string `json:"-"`
  3227  }
  3228  
  3229  func (s *PythonSettings) MarshalJSON() ([]byte, error) {
  3230  	type NoMethod PythonSettings
  3231  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
  3232  }
  3233  
  3234  // Quota: Quota configuration helps to achieve fairness and budgeting in
  3235  // service usage. The metric based quota configuration works this way: - The
  3236  // service configuration defines a set of metrics. - For API calls, the
  3237  // quota.metric_rules maps methods to metrics with corresponding costs. - The
  3238  // quota.limits defines limits on the metrics, which will be used for quota
  3239  // checks at runtime. An example quota configuration in yaml format: quota:
  3240  // limits: - name: apiWriteQpsPerProject metric:
  3241  // library.googleapis.com/write_calls unit: "1/min/{project}" # rate limit for
  3242  // consumer projects values: STANDARD: 10000 (The metric rules bind all methods
  3243  // to the read_calls metric, except for the UpdateBook and DeleteBook methods.
  3244  // These two methods are mapped to the write_calls metric, with the UpdateBook
  3245  // method consuming at twice rate as the DeleteBook method.) metric_rules: -
  3246  // selector: "*" metric_costs: library.googleapis.com/read_calls: 1 - selector:
  3247  // google.example.library.v1.LibraryService.UpdateBook metric_costs:
  3248  // library.googleapis.com/write_calls: 2 - selector:
  3249  // google.example.library.v1.LibraryService.DeleteBook metric_costs:
  3250  // library.googleapis.com/write_calls: 1 Corresponding Metric definition:
  3251  // metrics: - name: library.googleapis.com/read_calls display_name: Read
  3252  // requests metric_kind: DELTA value_type: INT64 - name:
  3253  // library.googleapis.com/write_calls display_name: Write requests metric_kind:
  3254  // DELTA value_type: INT64
  3255  type Quota struct {
  3256  	// Limits: List of QuotaLimit definitions for the service.
  3257  	Limits []*QuotaLimit `json:"limits,omitempty"`
  3258  	// MetricRules: List of MetricRule definitions, each one mapping a selected
  3259  	// method to one or more metrics.
  3260  	MetricRules []*MetricRule `json:"metricRules,omitempty"`
  3261  	// ForceSendFields is a list of field names (e.g. "Limits") to unconditionally
  3262  	// include in API requests. By default, fields with empty or default values are
  3263  	// omitted from API requests. See
  3264  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
  3265  	// details.
  3266  	ForceSendFields []string `json:"-"`
  3267  	// NullFields is a list of field names (e.g. "Limits") to include in API
  3268  	// requests with the JSON null value. By default, fields with empty values are
  3269  	// omitted from API requests. See
  3270  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
  3271  	NullFields []string `json:"-"`
  3272  }
  3273  
  3274  func (s *Quota) MarshalJSON() ([]byte, error) {
  3275  	type NoMethod Quota
  3276  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
  3277  }
  3278  
  3279  // QuotaLimit: `QuotaLimit` defines a specific limit that applies over a
  3280  // specified duration for a limit type. There can be at most one limit for a
  3281  // duration and limit type combination defined within a `QuotaGroup`.
  3282  type QuotaLimit struct {
  3283  	// DefaultLimit: Default number of tokens that can be consumed during the
  3284  	// specified duration. This is the number of tokens assigned when a client
  3285  	// application developer activates the service for his/her project. Specifying
  3286  	// a value of 0 will block all requests. This can be used if you are
  3287  	// provisioning quota to selected consumers and blocking others. Similarly, a
  3288  	// value of -1 will indicate an unlimited quota. No other negative values are
  3289  	// allowed. Used by group-based quotas only.
  3290  	DefaultLimit int64 `json:"defaultLimit,omitempty,string"`
  3291  	// Description: Optional. User-visible, extended description for this quota
  3292  	// limit. Should be used only when more context is needed to understand this
  3293  	// limit than provided by the limit's display name (see: `display_name`).
  3294  	Description string `json:"description,omitempty"`
  3295  	// DisplayName: User-visible display name for this limit. Optional. If not set,
  3296  	// the UI will provide a default display name based on the quota configuration.
  3297  	// This field can be used to override the default display name generated from
  3298  	// the configuration.
  3299  	DisplayName string `json:"displayName,omitempty"`
  3300  	// Duration: Duration of this limit in textual notation. Must be "100s" or
  3301  	// "1d". Used by group-based quotas only.
  3302  	Duration string `json:"duration,omitempty"`
  3303  	// FreeTier: Free tier value displayed in the Developers Console for this
  3304  	// limit. The free tier is the number of tokens that will be subtracted from
  3305  	// the billed amount when billing is enabled. This field can only be set on a
  3306  	// limit with duration "1d", in a billable group; it is invalid on any other
  3307  	// limit. If this field is not set, it defaults to 0, indicating that there is
  3308  	// no free tier for this service. Used by group-based quotas only.
  3309  	FreeTier int64 `json:"freeTier,omitempty,string"`
  3310  	// MaxLimit: Maximum number of tokens that can be consumed during the specified
  3311  	// duration. Client application developers can override the default limit up to
  3312  	// this maximum. If specified, this value cannot be set to a value less than
  3313  	// the default limit. If not specified, it is set to the default limit. To
  3314  	// allow clients to apply overrides with no upper bound, set this to -1,
  3315  	// indicating unlimited maximum quota. Used by group-based quotas only.
  3316  	MaxLimit int64 `json:"maxLimit,omitempty,string"`
  3317  	// Metric: The name of the metric this quota limit applies to. The quota limits
  3318  	// with the same metric will be checked together during runtime. The metric
  3319  	// must be defined within the service config.
  3320  	Metric string `json:"metric,omitempty"`
  3321  	// Name: Name of the quota limit. The name must be provided, and it must be
  3322  	// unique within the service. The name can only include alphanumeric characters
  3323  	// as well as '-'. The maximum length of the limit name is 64 characters.
  3324  	Name string `json:"name,omitempty"`
  3325  	// Unit: Specify the unit of the quota limit. It uses the same syntax as
  3326  	// Metric.unit. The supported unit kinds are determined by the quota backend
  3327  	// system. Here are some examples: * "1/min/{project}" for quota per minute per
  3328  	// project. Note: the order of unit components is insignificant. The "1" at the
  3329  	// beginning is required to follow the metric unit syntax.
  3330  	Unit string `json:"unit,omitempty"`
  3331  	// Values: Tiered limit values. You must specify this as a key:value pair, with
  3332  	// an integer value that is the maximum number of requests allowed for the
  3333  	// specified unit. Currently only STANDARD is supported.
  3334  	Values map[string]string `json:"values,omitempty"`
  3335  	// ForceSendFields is a list of field names (e.g. "DefaultLimit") to
  3336  	// unconditionally include in API requests. By default, fields with empty or
  3337  	// default values are omitted from API requests. See
  3338  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
  3339  	// details.
  3340  	ForceSendFields []string `json:"-"`
  3341  	// NullFields is a list of field names (e.g. "DefaultLimit") to include in API
  3342  	// requests with the JSON null value. By default, fields with empty values are
  3343  	// omitted from API requests. See
  3344  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
  3345  	NullFields []string `json:"-"`
  3346  }
  3347  
  3348  func (s *QuotaLimit) MarshalJSON() ([]byte, error) {
  3349  	type NoMethod QuotaLimit
  3350  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
  3351  }
  3352  
  3353  // Range: Represents a found unused range.
  3354  type Range struct {
  3355  	// IpCidrRange: CIDR range in "10.x.x.x/y" format that is within the allocated
  3356  	// ranges and currently unused.
  3357  	IpCidrRange string `json:"ipCidrRange,omitempty"`
  3358  	// Network: In the Shared VPC host project, the VPC network that's peered with
  3359  	// the consumer network. For example:
  3360  	// `projects/1234321/global/networks/host-network`
  3361  	Network string `json:"network,omitempty"`
  3362  	// ForceSendFields is a list of field names (e.g. "IpCidrRange") to
  3363  	// unconditionally include in API requests. By default, fields with empty or
  3364  	// default values are omitted from API requests. See
  3365  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
  3366  	// details.
  3367  	ForceSendFields []string `json:"-"`
  3368  	// NullFields is a list of field names (e.g. "IpCidrRange") to include in API
  3369  	// requests with the JSON null value. By default, fields with empty values are
  3370  	// omitted from API requests. See
  3371  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
  3372  	NullFields []string `json:"-"`
  3373  }
  3374  
  3375  func (s *Range) MarshalJSON() ([]byte, error) {
  3376  	type NoMethod Range
  3377  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
  3378  }
  3379  
  3380  // RemoveDnsRecordSetMetadata: Metadata provided through GetOperation request
  3381  // for the LRO generated by RemoveDnsRecordSet API
  3382  type RemoveDnsRecordSetMetadata struct {
  3383  }
  3384  
  3385  // RemoveDnsRecordSetResponse: Blank message response type for
  3386  // RemoveDnsRecordSet API
  3387  type RemoveDnsRecordSetResponse struct {
  3388  }
  3389  
  3390  // RemoveDnsZoneMetadata: Metadata provided through GetOperation request for
  3391  // the LRO generated by RemoveDnsZone API
  3392  type RemoveDnsZoneMetadata struct {
  3393  }
  3394  
  3395  // RemoveDnsZoneResponse: Blank message response type for RemoveDnsZone API
  3396  type RemoveDnsZoneResponse struct {
  3397  }
  3398  
  3399  // Route: Represents a route that was created or discovered by a private access
  3400  // management service.
  3401  type Route struct {
  3402  	// DestRange: Destination CIDR range that this route applies to.
  3403  	DestRange string `json:"destRange,omitempty"`
  3404  	// Name: Route name. See https://cloud.google.com/vpc/docs/routes
  3405  	Name string `json:"name,omitempty"`
  3406  	// Network: Fully-qualified URL of the VPC network in the producer host tenant
  3407  	// project that this route applies to. For example:
  3408  	// `projects/123456/global/networks/host-network`
  3409  	Network string `json:"network,omitempty"`
  3410  	// NextHopGateway: Fully-qualified URL of the gateway that should handle
  3411  	// matching packets that this route applies to. For example:
  3412  	// `projects/123456/global/gateways/default-internet-gateway`
  3413  	NextHopGateway string `json:"nextHopGateway,omitempty"`
  3414  	// ForceSendFields is a list of field names (e.g. "DestRange") to
  3415  	// unconditionally include in API requests. By default, fields with empty or
  3416  	// default values are omitted from API requests. See
  3417  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
  3418  	// details.
  3419  	ForceSendFields []string `json:"-"`
  3420  	// NullFields is a list of field names (e.g. "DestRange") to include in API
  3421  	// requests with the JSON null value. By default, fields with empty values are
  3422  	// omitted from API requests. See
  3423  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
  3424  	NullFields []string `json:"-"`
  3425  }
  3426  
  3427  func (s *Route) MarshalJSON() ([]byte, error) {
  3428  	type NoMethod Route
  3429  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
  3430  }
  3431  
  3432  // RubySettings: Settings for Ruby client libraries.
  3433  type RubySettings struct {
  3434  	// Common: Some settings.
  3435  	Common *CommonLanguageSettings `json:"common,omitempty"`
  3436  	// ForceSendFields is a list of field names (e.g. "Common") to unconditionally
  3437  	// include in API requests. By default, fields with empty or default values are
  3438  	// omitted from API requests. See
  3439  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
  3440  	// details.
  3441  	ForceSendFields []string `json:"-"`
  3442  	// NullFields is a list of field names (e.g. "Common") to include in API
  3443  	// requests with the JSON null value. By default, fields with empty values are
  3444  	// omitted from API requests. See
  3445  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
  3446  	NullFields []string `json:"-"`
  3447  }
  3448  
  3449  func (s *RubySettings) MarshalJSON() ([]byte, error) {
  3450  	type NoMethod RubySettings
  3451  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
  3452  }
  3453  
  3454  // SearchRangeRequest: Request to search for an unused range within allocated
  3455  // ranges.
  3456  type SearchRangeRequest struct {
  3457  	// IpPrefixLength: Required. The prefix length of the IP range. Use usual CIDR
  3458  	// range notation. For example, '30' to find unused x.x.x.x/30 CIDR range.
  3459  	// Actual range will be determined using allocated range for the consumer
  3460  	// peered network and returned in the result.
  3461  	IpPrefixLength int64 `json:"ipPrefixLength,omitempty"`
  3462  	// Network: Network name in the consumer project. This network must have been
  3463  	// already peered with a shared VPC network using CreateConnection method. Must
  3464  	// be in a form 'projects/{project}/global/networks/{network}'. {project} is a
  3465  	// project number, as in '12345' {network} is network name.
  3466  	Network string `json:"network,omitempty"`
  3467  	// ForceSendFields is a list of field names (e.g. "IpPrefixLength") to
  3468  	// unconditionally include in API requests. By default, fields with empty or
  3469  	// default values are omitted from API requests. See
  3470  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
  3471  	// details.
  3472  	ForceSendFields []string `json:"-"`
  3473  	// NullFields is a list of field names (e.g. "IpPrefixLength") to include in
  3474  	// API requests with the JSON null value. By default, fields with empty values
  3475  	// are omitted from API requests. See
  3476  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
  3477  	NullFields []string `json:"-"`
  3478  }
  3479  
  3480  func (s *SearchRangeRequest) MarshalJSON() ([]byte, error) {
  3481  	type NoMethod SearchRangeRequest
  3482  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
  3483  }
  3484  
  3485  type SecondaryIpRange struct {
  3486  	// IpCidrRange: Secondary IP CIDR range in `x.x.x.x/y` format.
  3487  	IpCidrRange string `json:"ipCidrRange,omitempty"`
  3488  	// RangeName: Name of the secondary IP range.
  3489  	RangeName string `json:"rangeName,omitempty"`
  3490  	// ForceSendFields is a list of field names (e.g. "IpCidrRange") to
  3491  	// unconditionally include in API requests. By default, fields with empty or
  3492  	// default values are omitted from API requests. See
  3493  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
  3494  	// details.
  3495  	ForceSendFields []string `json:"-"`
  3496  	// NullFields is a list of field names (e.g. "IpCidrRange") to include in API
  3497  	// requests with the JSON null value. By default, fields with empty values are
  3498  	// omitted from API requests. See
  3499  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
  3500  	NullFields []string `json:"-"`
  3501  }
  3502  
  3503  func (s *SecondaryIpRange) MarshalJSON() ([]byte, error) {
  3504  	type NoMethod SecondaryIpRange
  3505  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
  3506  }
  3507  
  3508  // Service: `Service` is the root object of Google API service configuration
  3509  // (service config). It describes the basic information about a logical
  3510  // service, such as the service name and the user-facing title, and delegates
  3511  // other aspects to sub-sections. Each sub-section is either a proto message or
  3512  // a repeated proto message that configures a specific aspect, such as auth.
  3513  // For more information, see each proto message definition. Example: type:
  3514  // google.api.Service name: calendar.googleapis.com title: Google Calendar API
  3515  // apis: - name: google.calendar.v3.Calendar visibility: rules: - selector:
  3516  // "google.calendar.v3.*" restriction: PREVIEW backend: rules: - selector:
  3517  // "google.calendar.v3.*" address: calendar.example.com authentication:
  3518  // providers: - id: google_calendar_auth jwks_uri:
  3519  // https://www.googleapis.com/oauth2/v1/certs issuer:
  3520  // https://securetoken.google.com rules: - selector: "*" requirements:
  3521  // provider_id: google_calendar_auth
  3522  type Service struct {
  3523  	// Apis: A list of API interfaces exported by this service. Only the `name`
  3524  	// field of the google.protobuf.Api needs to be provided by the configuration
  3525  	// author, as the remaining fields will be derived from the IDL during the
  3526  	// normalization process. It is an error to specify an API interface here which
  3527  	// cannot be resolved against the associated IDL files.
  3528  	Apis []*Api `json:"apis,omitempty"`
  3529  	// Authentication: Auth configuration.
  3530  	Authentication *Authentication `json:"authentication,omitempty"`
  3531  	// Backend: API backend configuration.
  3532  	Backend *Backend `json:"backend,omitempty"`
  3533  	// Billing: Billing configuration.
  3534  	Billing *Billing `json:"billing,omitempty"`
  3535  	// ConfigVersion: Obsolete. Do not use. This field has no semantic meaning. The
  3536  	// service config compiler always sets this field to `3`.
  3537  	ConfigVersion int64 `json:"configVersion,omitempty"`
  3538  	// Context: Context configuration.
  3539  	Context *Context `json:"context,omitempty"`
  3540  	// Control: Configuration for the service control plane.
  3541  	Control *Control `json:"control,omitempty"`
  3542  	// CustomError: Custom error configuration.
  3543  	CustomError *CustomError `json:"customError,omitempty"`
  3544  	// Documentation: Additional API documentation.
  3545  	Documentation *Documentation `json:"documentation,omitempty"`
  3546  	// Endpoints: Configuration for network endpoints. If this is empty, then an
  3547  	// endpoint with the same name as the service is automatically generated to
  3548  	// service all defined APIs.
  3549  	Endpoints []*Endpoint `json:"endpoints,omitempty"`
  3550  	// Enums: A list of all enum types included in this API service. Enums
  3551  	// referenced directly or indirectly by the `apis` are automatically included.
  3552  	// Enums which are not referenced but shall be included should be listed here
  3553  	// by name by the configuration author. Example: enums: - name:
  3554  	// google.someapi.v1.SomeEnum
  3555  	Enums []*Enum `json:"enums,omitempty"`
  3556  	// Http: HTTP configuration.
  3557  	Http *Http `json:"http,omitempty"`
  3558  	// Id: A unique ID for a specific instance of this message, typically assigned
  3559  	// by the client for tracking purpose. Must be no longer than 63 characters and
  3560  	// only lower case letters, digits, '.', '_' and '-' are allowed. If empty, the
  3561  	// server may choose to generate one instead.
  3562  	Id string `json:"id,omitempty"`
  3563  	// Logging: Logging configuration.
  3564  	Logging *Logging `json:"logging,omitempty"`
  3565  	// Logs: Defines the logs used by this service.
  3566  	Logs []*LogDescriptor `json:"logs,omitempty"`
  3567  	// Metrics: Defines the metrics used by this service.
  3568  	Metrics []*MetricDescriptor `json:"metrics,omitempty"`
  3569  	// MonitoredResources: Defines the monitored resources used by this service.
  3570  	// This is required by the Service.monitoring and Service.logging
  3571  	// configurations.
  3572  	MonitoredResources []*MonitoredResourceDescriptor `json:"monitoredResources,omitempty"`
  3573  	// Monitoring: Monitoring configuration.
  3574  	Monitoring *Monitoring `json:"monitoring,omitempty"`
  3575  	// Name: The service name, which is a DNS-like logical identifier for the
  3576  	// service, such as `calendar.googleapis.com`. The service name typically goes
  3577  	// through DNS verification to make sure the owner of the service also owns the
  3578  	// DNS name.
  3579  	Name string `json:"name,omitempty"`
  3580  	// ProducerProjectId: The Google project that owns this service.
  3581  	ProducerProjectId string `json:"producerProjectId,omitempty"`
  3582  	// Publishing: Settings for Google Cloud Client libraries
  3583  	// (https://cloud.google.com/apis/docs/cloud-client-libraries) generated from
  3584  	// APIs defined as protocol buffers.
  3585  	Publishing *Publishing `json:"publishing,omitempty"`
  3586  	// Quota: Quota configuration.
  3587  	Quota *Quota `json:"quota,omitempty"`
  3588  	// SourceInfo: Output only. The source information for this configuration if
  3589  	// available.
  3590  	SourceInfo *SourceInfo `json:"sourceInfo,omitempty"`
  3591  	// SystemParameters: System parameter configuration.
  3592  	SystemParameters *SystemParameters `json:"systemParameters,omitempty"`
  3593  	// SystemTypes: A list of all proto message types included in this API service.
  3594  	// It serves similar purpose as [google.api.Service.types], except that these
  3595  	// types are not needed by user-defined APIs. Therefore, they will not show up
  3596  	// in the generated discovery doc. This field should only be used to define
  3597  	// system APIs in ESF.
  3598  	SystemTypes []*Type `json:"systemTypes,omitempty"`
  3599  	// Title: The product title for this service, it is the name displayed in
  3600  	// Google Cloud Console.
  3601  	Title string `json:"title,omitempty"`
  3602  	// Types: A list of all proto message types included in this API service. Types
  3603  	// referenced directly or indirectly by the `apis` are automatically included.
  3604  	// Messages which are not referenced but shall be included, such as types used
  3605  	// by the `google.protobuf.Any` type, should be listed here by name by the
  3606  	// configuration author. Example: types: - name: google.protobuf.Int32
  3607  	Types []*Type `json:"types,omitempty"`
  3608  	// Usage: Configuration controlling usage of this service.
  3609  	Usage *Usage `json:"usage,omitempty"`
  3610  	// ForceSendFields is a list of field names (e.g. "Apis") to unconditionally
  3611  	// include in API requests. By default, fields with empty or default values are
  3612  	// omitted from API requests. See
  3613  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
  3614  	// details.
  3615  	ForceSendFields []string `json:"-"`
  3616  	// NullFields is a list of field names (e.g. "Apis") to include in API requests
  3617  	// with the JSON null value. By default, fields with empty values are omitted
  3618  	// from API requests. See
  3619  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
  3620  	NullFields []string `json:"-"`
  3621  }
  3622  
  3623  func (s *Service) MarshalJSON() ([]byte, error) {
  3624  	type NoMethod Service
  3625  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
  3626  }
  3627  
  3628  // SourceContext: `SourceContext` represents information about the source of a
  3629  // protobuf element, like the file in which it is defined.
  3630  type SourceContext struct {
  3631  	// FileName: The path-qualified name of the .proto file that contained the
  3632  	// associated protobuf element. For example:
  3633  	// "google/protobuf/source_context.proto".
  3634  	FileName string `json:"fileName,omitempty"`
  3635  	// ForceSendFields is a list of field names (e.g. "FileName") to
  3636  	// unconditionally include in API requests. By default, fields with empty or
  3637  	// default values are omitted from API requests. See
  3638  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
  3639  	// details.
  3640  	ForceSendFields []string `json:"-"`
  3641  	// NullFields is a list of field names (e.g. "FileName") to include in API
  3642  	// requests with the JSON null value. By default, fields with empty values are
  3643  	// omitted from API requests. See
  3644  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
  3645  	NullFields []string `json:"-"`
  3646  }
  3647  
  3648  func (s *SourceContext) MarshalJSON() ([]byte, error) {
  3649  	type NoMethod SourceContext
  3650  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
  3651  }
  3652  
  3653  // SourceInfo: Source information used to create a Service Config
  3654  type SourceInfo struct {
  3655  	// SourceFiles: All files used during config generation.
  3656  	SourceFiles []googleapi.RawMessage `json:"sourceFiles,omitempty"`
  3657  	// ForceSendFields is a list of field names (e.g. "SourceFiles") to
  3658  	// unconditionally include in API requests. By default, fields with empty or
  3659  	// default values are omitted from API requests. See
  3660  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
  3661  	// details.
  3662  	ForceSendFields []string `json:"-"`
  3663  	// NullFields is a list of field names (e.g. "SourceFiles") to include in API
  3664  	// requests with the JSON null value. By default, fields with empty values are
  3665  	// omitted from API requests. See
  3666  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
  3667  	NullFields []string `json:"-"`
  3668  }
  3669  
  3670  func (s *SourceInfo) MarshalJSON() ([]byte, error) {
  3671  	type NoMethod SourceInfo
  3672  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
  3673  }
  3674  
  3675  // Status: The `Status` type defines a logical error model that is suitable for
  3676  // different programming environments, including REST APIs and RPC APIs. It is
  3677  // used by gRPC (https://github.com/grpc). Each `Status` message contains three
  3678  // pieces of data: error code, error message, and error details. You can find
  3679  // out more about this error model and how to work with it in the API Design
  3680  // Guide (https://cloud.google.com/apis/design/errors).
  3681  type Status struct {
  3682  	// Code: The status code, which should be an enum value of google.rpc.Code.
  3683  	Code int64 `json:"code,omitempty"`
  3684  	// Details: A list of messages that carry the error details. There is a common
  3685  	// set of message types for APIs to use.
  3686  	Details []googleapi.RawMessage `json:"details,omitempty"`
  3687  	// Message: A developer-facing error message, which should be in English. Any
  3688  	// user-facing error message should be localized and sent in the
  3689  	// google.rpc.Status.details field, or localized by the client.
  3690  	Message string `json:"message,omitempty"`
  3691  	// ForceSendFields is a list of field names (e.g. "Code") to unconditionally
  3692  	// include in API requests. By default, fields with empty or default values are
  3693  	// omitted from API requests. See
  3694  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
  3695  	// details.
  3696  	ForceSendFields []string `json:"-"`
  3697  	// NullFields is a list of field names (e.g. "Code") to include in API requests
  3698  	// with the JSON null value. By default, fields with empty values are omitted
  3699  	// from API requests. See
  3700  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
  3701  	NullFields []string `json:"-"`
  3702  }
  3703  
  3704  func (s *Status) MarshalJSON() ([]byte, error) {
  3705  	type NoMethod Status
  3706  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
  3707  }
  3708  
  3709  // Subnetwork: Represents a subnet that was created or discovered by a private
  3710  // access management service.
  3711  type Subnetwork struct {
  3712  	// IpCidrRange: Subnetwork CIDR range in `10.x.x.x/y` format.
  3713  	IpCidrRange string `json:"ipCidrRange,omitempty"`
  3714  	// Name: Subnetwork name. See https://cloud.google.com/compute/docs/vpc/
  3715  	Name string `json:"name,omitempty"`
  3716  	// Network: In the Shared VPC host project, the VPC network that's peered with
  3717  	// the consumer network. For example:
  3718  	// `projects/1234321/global/networks/host-network`
  3719  	Network string `json:"network,omitempty"`
  3720  	// OutsideAllocation: This is a discovered subnet that is not within the
  3721  	// current consumer allocated ranges.
  3722  	OutsideAllocation bool `json:"outsideAllocation,omitempty"`
  3723  	// Region: GCP region where the subnetwork is located.
  3724  	Region string `json:"region,omitempty"`
  3725  	// SecondaryIpRanges: List of secondary IP ranges in this subnetwork.
  3726  	SecondaryIpRanges []*SecondaryIpRange `json:"secondaryIpRanges,omitempty"`
  3727  	// ForceSendFields is a list of field names (e.g. "IpCidrRange") to
  3728  	// unconditionally include in API requests. By default, fields with empty or
  3729  	// default values are omitted from API requests. See
  3730  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
  3731  	// details.
  3732  	ForceSendFields []string `json:"-"`
  3733  	// NullFields is a list of field names (e.g. "IpCidrRange") to include in API
  3734  	// requests with the JSON null value. By default, fields with empty values are
  3735  	// omitted from API requests. See
  3736  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
  3737  	NullFields []string `json:"-"`
  3738  }
  3739  
  3740  func (s *Subnetwork) MarshalJSON() ([]byte, error) {
  3741  	type NoMethod Subnetwork
  3742  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
  3743  }
  3744  
  3745  // SystemParameter: Define a parameter's name and location. The parameter may
  3746  // be passed as either an HTTP header or a URL query parameter, and if both are
  3747  // passed the behavior is implementation-dependent.
  3748  type SystemParameter struct {
  3749  	// HttpHeader: Define the HTTP header name to use for the parameter. It is case
  3750  	// insensitive.
  3751  	HttpHeader string `json:"httpHeader,omitempty"`
  3752  	// Name: Define the name of the parameter, such as "api_key" . It is case
  3753  	// sensitive.
  3754  	Name string `json:"name,omitempty"`
  3755  	// UrlQueryParameter: Define the URL query parameter name to use for the
  3756  	// parameter. It is case sensitive.
  3757  	UrlQueryParameter string `json:"urlQueryParameter,omitempty"`
  3758  	// ForceSendFields is a list of field names (e.g. "HttpHeader") to
  3759  	// unconditionally include in API requests. By default, fields with empty or
  3760  	// default values are omitted from API requests. See
  3761  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
  3762  	// details.
  3763  	ForceSendFields []string `json:"-"`
  3764  	// NullFields is a list of field names (e.g. "HttpHeader") to include in API
  3765  	// requests with the JSON null value. By default, fields with empty values are
  3766  	// omitted from API requests. See
  3767  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
  3768  	NullFields []string `json:"-"`
  3769  }
  3770  
  3771  func (s *SystemParameter) MarshalJSON() ([]byte, error) {
  3772  	type NoMethod SystemParameter
  3773  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
  3774  }
  3775  
  3776  // SystemParameterRule: Define a system parameter rule mapping system parameter
  3777  // definitions to methods.
  3778  type SystemParameterRule struct {
  3779  	// Parameters: Define parameters. Multiple names may be defined for a
  3780  	// parameter. For a given method call, only one of them should be used. If
  3781  	// multiple names are used the behavior is implementation-dependent. If none of
  3782  	// the specified names are present the behavior is parameter-dependent.
  3783  	Parameters []*SystemParameter `json:"parameters,omitempty"`
  3784  	// Selector: Selects the methods to which this rule applies. Use '*' to
  3785  	// indicate all methods in all APIs. Refer to selector for syntax details.
  3786  	Selector string `json:"selector,omitempty"`
  3787  	// ForceSendFields is a list of field names (e.g. "Parameters") to
  3788  	// unconditionally include in API requests. By default, fields with empty or
  3789  	// default values are omitted from API requests. See
  3790  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
  3791  	// details.
  3792  	ForceSendFields []string `json:"-"`
  3793  	// NullFields is a list of field names (e.g. "Parameters") to include in API
  3794  	// requests with the JSON null value. By default, fields with empty values are
  3795  	// omitted from API requests. See
  3796  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
  3797  	NullFields []string `json:"-"`
  3798  }
  3799  
  3800  func (s *SystemParameterRule) MarshalJSON() ([]byte, error) {
  3801  	type NoMethod SystemParameterRule
  3802  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
  3803  }
  3804  
  3805  // SystemParameters: ### System parameter configuration A system parameter is a
  3806  // special kind of parameter defined by the API system, not by an individual
  3807  // API. It is typically mapped to an HTTP header and/or a URL query parameter.
  3808  // This configuration specifies which methods change the names of the system
  3809  // parameters.
  3810  type SystemParameters struct {
  3811  	// Rules: Define system parameters. The parameters defined here will override
  3812  	// the default parameters implemented by the system. If this field is missing
  3813  	// from the service config, default system parameters will be used. Default
  3814  	// system parameters and names is implementation-dependent. Example: define api
  3815  	// key for all methods system_parameters rules: - selector: "*" parameters: -
  3816  	// name: api_key url_query_parameter: api_key Example: define 2 api key names
  3817  	// for a specific method. system_parameters rules: - selector: "/ListShelves"
  3818  	// parameters: - name: api_key http_header: Api-Key1 - name: api_key
  3819  	// http_header: Api-Key2 **NOTE:** All service configuration rules follow "last
  3820  	// one wins" order.
  3821  	Rules []*SystemParameterRule `json:"rules,omitempty"`
  3822  	// ForceSendFields is a list of field names (e.g. "Rules") to unconditionally
  3823  	// include in API requests. By default, fields with empty or default values are
  3824  	// omitted from API requests. See
  3825  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
  3826  	// details.
  3827  	ForceSendFields []string `json:"-"`
  3828  	// NullFields is a list of field names (e.g. "Rules") to include in API
  3829  	// requests with the JSON null value. By default, fields with empty values are
  3830  	// omitted from API requests. See
  3831  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
  3832  	NullFields []string `json:"-"`
  3833  }
  3834  
  3835  func (s *SystemParameters) MarshalJSON() ([]byte, error) {
  3836  	type NoMethod SystemParameters
  3837  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
  3838  }
  3839  
  3840  // Type: A protocol buffer message type.
  3841  type Type struct {
  3842  	// Edition: The source edition string, only valid when syntax is
  3843  	// SYNTAX_EDITIONS.
  3844  	Edition string `json:"edition,omitempty"`
  3845  	// Fields: The list of fields.
  3846  	Fields []*Field `json:"fields,omitempty"`
  3847  	// Name: The fully qualified message name.
  3848  	Name string `json:"name,omitempty"`
  3849  	// Oneofs: The list of types appearing in `oneof` definitions in this type.
  3850  	Oneofs []string `json:"oneofs,omitempty"`
  3851  	// Options: The protocol buffer options.
  3852  	Options []*Option `json:"options,omitempty"`
  3853  	// SourceContext: The source context.
  3854  	SourceContext *SourceContext `json:"sourceContext,omitempty"`
  3855  	// Syntax: The source syntax.
  3856  	//
  3857  	// Possible values:
  3858  	//   "SYNTAX_PROTO2" - Syntax `proto2`.
  3859  	//   "SYNTAX_PROTO3" - Syntax `proto3`.
  3860  	//   "SYNTAX_EDITIONS" - Syntax `editions`.
  3861  	Syntax string `json:"syntax,omitempty"`
  3862  	// ForceSendFields is a list of field names (e.g. "Edition") to unconditionally
  3863  	// include in API requests. By default, fields with empty or default values are
  3864  	// omitted from API requests. See
  3865  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
  3866  	// details.
  3867  	ForceSendFields []string `json:"-"`
  3868  	// NullFields is a list of field names (e.g. "Edition") to include in API
  3869  	// requests with the JSON null value. By default, fields with empty values are
  3870  	// omitted from API requests. See
  3871  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
  3872  	NullFields []string `json:"-"`
  3873  }
  3874  
  3875  func (s *Type) MarshalJSON() ([]byte, error) {
  3876  	type NoMethod Type
  3877  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
  3878  }
  3879  
  3880  // UpdateDnsRecordSetMetadata: Metadata provided through GetOperation request
  3881  // for the LRO generated by UpdateDnsRecordSet API
  3882  type UpdateDnsRecordSetMetadata struct {
  3883  }
  3884  
  3885  // Usage: Configuration controlling usage of a service.
  3886  type Usage struct {
  3887  	// ProducerNotificationChannel: The full resource name of a channel used for
  3888  	// sending notifications to the service producer. Google Service Management
  3889  	// currently only supports Google Cloud Pub/Sub
  3890  	// (https://cloud.google.com/pubsub) as a notification channel. To use Google
  3891  	// Cloud Pub/Sub as the channel, this must be the name of a Cloud Pub/Sub topic
  3892  	// that uses the Cloud Pub/Sub topic name format documented in
  3893  	// https://cloud.google.com/pubsub/docs/overview.
  3894  	ProducerNotificationChannel string `json:"producerNotificationChannel,omitempty"`
  3895  	// Requirements: Requirements that must be satisfied before a consumer project
  3896  	// can use the service. Each requirement is of the form /; for example
  3897  	// 'serviceusage.googleapis.com/billing-enabled'. For Google APIs, a Terms of
  3898  	// Service requirement must be included here. Google Cloud APIs must include
  3899  	// "serviceusage.googleapis.com/tos/cloud". Other Google APIs should include
  3900  	// "serviceusage.googleapis.com/tos/universal". Additional ToS can be included
  3901  	// based on the business needs.
  3902  	Requirements []string `json:"requirements,omitempty"`
  3903  	// Rules: A list of usage rules that apply to individual API methods. **NOTE:**
  3904  	// All service configuration rules follow "last one wins" order.
  3905  	Rules []*UsageRule `json:"rules,omitempty"`
  3906  	// ForceSendFields is a list of field names (e.g.
  3907  	// "ProducerNotificationChannel") to unconditionally include in API requests.
  3908  	// By default, fields with empty or default values are omitted from API
  3909  	// requests. See https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields
  3910  	// for more details.
  3911  	ForceSendFields []string `json:"-"`
  3912  	// NullFields is a list of field names (e.g. "ProducerNotificationChannel") to
  3913  	// include in API requests with the JSON null value. By default, fields with
  3914  	// empty values are omitted from API requests. See
  3915  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
  3916  	NullFields []string `json:"-"`
  3917  }
  3918  
  3919  func (s *Usage) MarshalJSON() ([]byte, error) {
  3920  	type NoMethod Usage
  3921  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
  3922  }
  3923  
  3924  // UsageRule: Usage configuration rules for the service. NOTE: Under
  3925  // development. Use this rule to configure unregistered calls for the service.
  3926  // Unregistered calls are calls that do not contain consumer project identity.
  3927  // (Example: calls that do not contain an API key). By default, API methods do
  3928  // not allow unregistered calls, and each method call must be identified by a
  3929  // consumer project identity. Use this rule to allow/disallow unregistered
  3930  // calls. Example of an API that wants to allow unregistered calls for entire
  3931  // service. usage: rules: - selector: "*" allow_unregistered_calls: true
  3932  // Example of a method that wants to allow unregistered calls. usage: rules: -
  3933  // selector: "google.example.library.v1.LibraryService.CreateBook"
  3934  // allow_unregistered_calls: true
  3935  type UsageRule struct {
  3936  	// AllowUnregisteredCalls: If true, the selected method allows unregistered
  3937  	// calls, e.g. calls that don't identify any user or application.
  3938  	AllowUnregisteredCalls bool `json:"allowUnregisteredCalls,omitempty"`
  3939  	// Selector: Selects the methods to which this rule applies. Use '*' to
  3940  	// indicate all methods in all APIs. Refer to selector for syntax details.
  3941  	Selector string `json:"selector,omitempty"`
  3942  	// SkipServiceControl: If true, the selected method should skip service control
  3943  	// and the control plane features, such as quota and billing, will not be
  3944  	// available. This flag is used by Google Cloud Endpoints to bypass checks for
  3945  	// internal methods, such as service health check methods.
  3946  	SkipServiceControl bool `json:"skipServiceControl,omitempty"`
  3947  	// ForceSendFields is a list of field names (e.g. "AllowUnregisteredCalls") to
  3948  	// unconditionally include in API requests. By default, fields with empty or
  3949  	// default values are omitted from API requests. See
  3950  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
  3951  	// details.
  3952  	ForceSendFields []string `json:"-"`
  3953  	// NullFields is a list of field names (e.g. "AllowUnregisteredCalls") to
  3954  	// include in API requests with the JSON null value. By default, fields with
  3955  	// empty values are omitted from API requests. See
  3956  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
  3957  	NullFields []string `json:"-"`
  3958  }
  3959  
  3960  func (s *UsageRule) MarshalJSON() ([]byte, error) {
  3961  	type NoMethod UsageRule
  3962  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
  3963  }
  3964  
  3965  // VpcServiceControls: Response for the get VPC Service Controls request.
  3966  type VpcServiceControls struct {
  3967  	// Enabled: Output only. Indicates whether the VPC Service Controls are enabled
  3968  	// or disabled for the connection. If the consumer called the
  3969  	// EnableVpcServiceControls method, then this is true. If the consumer called
  3970  	// DisableVpcServiceControls, then this is false. The default is false.
  3971  	Enabled bool `json:"enabled,omitempty"`
  3972  	// ForceSendFields is a list of field names (e.g. "Enabled") to unconditionally
  3973  	// include in API requests. By default, fields with empty or default values are
  3974  	// omitted from API requests. See
  3975  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
  3976  	// details.
  3977  	ForceSendFields []string `json:"-"`
  3978  	// NullFields is a list of field names (e.g. "Enabled") to include in API
  3979  	// requests with the JSON null value. By default, fields with empty values are
  3980  	// omitted from API requests. See
  3981  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
  3982  	NullFields []string `json:"-"`
  3983  }
  3984  
  3985  func (s *VpcServiceControls) MarshalJSON() ([]byte, error) {
  3986  	type NoMethod VpcServiceControls
  3987  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
  3988  }
  3989  
  3990  type OperationsGetCall struct {
  3991  	s            *APIService
  3992  	name         string
  3993  	urlParams_   gensupport.URLParams
  3994  	ifNoneMatch_ string
  3995  	ctx_         context.Context
  3996  	header_      http.Header
  3997  }
  3998  
  3999  // Get: Gets the latest state of a long-running operation. Clients can use this
  4000  // method to poll the operation result at intervals as recommended by the API
  4001  // service.
  4002  //
  4003  // - name: The name of the operation resource.
  4004  func (r *OperationsService) Get(name string) *OperationsGetCall {
  4005  	c := &OperationsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
  4006  	c.name = name
  4007  	return c
  4008  }
  4009  
  4010  // Fields allows partial responses to be retrieved. See
  4011  // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more
  4012  // details.
  4013  func (c *OperationsGetCall) Fields(s ...googleapi.Field) *OperationsGetCall {
  4014  	c.urlParams_.Set("fields", googleapi.CombineFields(s))
  4015  	return c
  4016  }
  4017  
  4018  // IfNoneMatch sets an optional parameter which makes the operation fail if the
  4019  // object's ETag matches the given value. This is useful for getting updates
  4020  // only after the object has changed since the last request.
  4021  func (c *OperationsGetCall) IfNoneMatch(entityTag string) *OperationsGetCall {
  4022  	c.ifNoneMatch_ = entityTag
  4023  	return c
  4024  }
  4025  
  4026  // Context sets the context to be used in this call's Do method.
  4027  func (c *OperationsGetCall) Context(ctx context.Context) *OperationsGetCall {
  4028  	c.ctx_ = ctx
  4029  	return c
  4030  }
  4031  
  4032  // Header returns a http.Header that can be modified by the caller to add
  4033  // headers to the request.
  4034  func (c *OperationsGetCall) Header() http.Header {
  4035  	if c.header_ == nil {
  4036  		c.header_ = make(http.Header)
  4037  	}
  4038  	return c.header_
  4039  }
  4040  
  4041  func (c *OperationsGetCall) doRequest(alt string) (*http.Response, error) {
  4042  	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_)
  4043  	if c.ifNoneMatch_ != "" {
  4044  		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
  4045  	}
  4046  	var body io.Reader = nil
  4047  	c.urlParams_.Set("alt", alt)
  4048  	c.urlParams_.Set("prettyPrint", "false")
  4049  	urls := googleapi.ResolveRelative(c.s.BasePath, "v1beta/{+name}")
  4050  	urls += "?" + c.urlParams_.Encode()
  4051  	req, err := http.NewRequest("GET", urls, body)
  4052  	if err != nil {
  4053  		return nil, err
  4054  	}
  4055  	req.Header = reqHeaders
  4056  	googleapi.Expand(req.URL, map[string]string{
  4057  		"name": c.name,
  4058  	})
  4059  	return gensupport.SendRequest(c.ctx_, c.s.client, req)
  4060  }
  4061  
  4062  // Do executes the "servicenetworking.operations.get" call.
  4063  // Any non-2xx status code is an error. Response headers are in either
  4064  // *Operation.ServerResponse.Header or (if a response was returned at all) in
  4065  // error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check
  4066  // whether the returned error was because http.StatusNotModified was returned.
  4067  func (c *OperationsGetCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
  4068  	gensupport.SetOptions(c.urlParams_, opts...)
  4069  	res, err := c.doRequest("json")
  4070  	if res != nil && res.StatusCode == http.StatusNotModified {
  4071  		if res.Body != nil {
  4072  			res.Body.Close()
  4073  		}
  4074  		return nil, gensupport.WrapError(&googleapi.Error{
  4075  			Code:   res.StatusCode,
  4076  			Header: res.Header,
  4077  		})
  4078  	}
  4079  	if err != nil {
  4080  		return nil, err
  4081  	}
  4082  	defer googleapi.CloseBody(res)
  4083  	if err := googleapi.CheckResponse(res); err != nil {
  4084  		return nil, gensupport.WrapError(err)
  4085  	}
  4086  	ret := &Operation{
  4087  		ServerResponse: googleapi.ServerResponse{
  4088  			Header:         res.Header,
  4089  			HTTPStatusCode: res.StatusCode,
  4090  		},
  4091  	}
  4092  	target := &ret
  4093  	if err := gensupport.DecodeResponse(target, res); err != nil {
  4094  		return nil, err
  4095  	}
  4096  	return ret, nil
  4097  }
  4098  
  4099  type ServicesAddSubnetworkCall struct {
  4100  	s                    *APIService
  4101  	parent               string
  4102  	addsubnetworkrequest *AddSubnetworkRequest
  4103  	urlParams_           gensupport.URLParams
  4104  	ctx_                 context.Context
  4105  	header_              http.Header
  4106  }
  4107  
  4108  // AddSubnetwork: For service producers, provisions a new subnet in a peered
  4109  // service's shared VPC network in the requested region and with the requested
  4110  // size that's expressed as a CIDR range (number of leading bits of ipV4
  4111  // network mask). The method checks against the assigned allocated ranges to
  4112  // find a non-conflicting IP address range. The method will reuse a subnet if
  4113  // subsequent calls contain the same subnet name, region, and prefix length.
  4114  // This method will make producer's tenant project to be a shared VPC service
  4115  // project as needed. The response from the `get` operation will be of type
  4116  // `Subnetwork` if the operation successfully completes.
  4117  //
  4118  //   - parent: A tenant project in the service producer organization, in the
  4119  //     following format: services/{service}/{collection-id}/{resource-id}.
  4120  //     {collection-id} is the cloud resource collection type that represents the
  4121  //     tenant project. Only `projects` are supported. {resource-id} is the tenant
  4122  //     project numeric id, such as `123456`. {service} the name of the peering
  4123  //     service, such as `service-peering.example.com`. This service must already
  4124  //     be enabled in the service consumer's project.
  4125  func (r *ServicesService) AddSubnetwork(parent string, addsubnetworkrequest *AddSubnetworkRequest) *ServicesAddSubnetworkCall {
  4126  	c := &ServicesAddSubnetworkCall{s: r.s, urlParams_: make(gensupport.URLParams)}
  4127  	c.parent = parent
  4128  	c.addsubnetworkrequest = addsubnetworkrequest
  4129  	return c
  4130  }
  4131  
  4132  // Fields allows partial responses to be retrieved. See
  4133  // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more
  4134  // details.
  4135  func (c *ServicesAddSubnetworkCall) Fields(s ...googleapi.Field) *ServicesAddSubnetworkCall {
  4136  	c.urlParams_.Set("fields", googleapi.CombineFields(s))
  4137  	return c
  4138  }
  4139  
  4140  // Context sets the context to be used in this call's Do method.
  4141  func (c *ServicesAddSubnetworkCall) Context(ctx context.Context) *ServicesAddSubnetworkCall {
  4142  	c.ctx_ = ctx
  4143  	return c
  4144  }
  4145  
  4146  // Header returns a http.Header that can be modified by the caller to add
  4147  // headers to the request.
  4148  func (c *ServicesAddSubnetworkCall) Header() http.Header {
  4149  	if c.header_ == nil {
  4150  		c.header_ = make(http.Header)
  4151  	}
  4152  	return c.header_
  4153  }
  4154  
  4155  func (c *ServicesAddSubnetworkCall) doRequest(alt string) (*http.Response, error) {
  4156  	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_)
  4157  	var body io.Reader = nil
  4158  	body, err := googleapi.WithoutDataWrapper.JSONReader(c.addsubnetworkrequest)
  4159  	if err != nil {
  4160  		return nil, err
  4161  	}
  4162  	c.urlParams_.Set("alt", alt)
  4163  	c.urlParams_.Set("prettyPrint", "false")
  4164  	urls := googleapi.ResolveRelative(c.s.BasePath, "v1beta/{+parent}:addSubnetwork")
  4165  	urls += "?" + c.urlParams_.Encode()
  4166  	req, err := http.NewRequest("POST", urls, body)
  4167  	if err != nil {
  4168  		return nil, err
  4169  	}
  4170  	req.Header = reqHeaders
  4171  	googleapi.Expand(req.URL, map[string]string{
  4172  		"parent": c.parent,
  4173  	})
  4174  	return gensupport.SendRequest(c.ctx_, c.s.client, req)
  4175  }
  4176  
  4177  // Do executes the "servicenetworking.services.addSubnetwork" call.
  4178  // Any non-2xx status code is an error. Response headers are in either
  4179  // *Operation.ServerResponse.Header or (if a response was returned at all) in
  4180  // error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check
  4181  // whether the returned error was because http.StatusNotModified was returned.
  4182  func (c *ServicesAddSubnetworkCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
  4183  	gensupport.SetOptions(c.urlParams_, opts...)
  4184  	res, err := c.doRequest("json")
  4185  	if res != nil && res.StatusCode == http.StatusNotModified {
  4186  		if res.Body != nil {
  4187  			res.Body.Close()
  4188  		}
  4189  		return nil, gensupport.WrapError(&googleapi.Error{
  4190  			Code:   res.StatusCode,
  4191  			Header: res.Header,
  4192  		})
  4193  	}
  4194  	if err != nil {
  4195  		return nil, err
  4196  	}
  4197  	defer googleapi.CloseBody(res)
  4198  	if err := googleapi.CheckResponse(res); err != nil {
  4199  		return nil, gensupport.WrapError(err)
  4200  	}
  4201  	ret := &Operation{
  4202  		ServerResponse: googleapi.ServerResponse{
  4203  			Header:         res.Header,
  4204  			HTTPStatusCode: res.StatusCode,
  4205  		},
  4206  	}
  4207  	target := &ret
  4208  	if err := gensupport.DecodeResponse(target, res); err != nil {
  4209  		return nil, err
  4210  	}
  4211  	return ret, nil
  4212  }
  4213  
  4214  type ServicesSearchRangeCall struct {
  4215  	s                  *APIService
  4216  	parent             string
  4217  	searchrangerequest *SearchRangeRequest
  4218  	urlParams_         gensupport.URLParams
  4219  	ctx_               context.Context
  4220  	header_            http.Header
  4221  }
  4222  
  4223  // SearchRange: Service producers can use this method to find a currently
  4224  // unused range within consumer allocated ranges. This returned range is not
  4225  // reserved, and not guaranteed to remain unused. It will validate previously
  4226  // provided allocated ranges, find non-conflicting sub-range of requested size
  4227  // (expressed in number of leading bits of ipv4 network mask, as in CIDR range
  4228  // notation). Operation
  4229  //
  4230  //   - parent: This is in a form services/{service}. {service} the name of the
  4231  //     private access management service, for example
  4232  //     'service-peering.example.com'.
  4233  func (r *ServicesService) SearchRange(parent string, searchrangerequest *SearchRangeRequest) *ServicesSearchRangeCall {
  4234  	c := &ServicesSearchRangeCall{s: r.s, urlParams_: make(gensupport.URLParams)}
  4235  	c.parent = parent
  4236  	c.searchrangerequest = searchrangerequest
  4237  	return c
  4238  }
  4239  
  4240  // Fields allows partial responses to be retrieved. See
  4241  // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more
  4242  // details.
  4243  func (c *ServicesSearchRangeCall) Fields(s ...googleapi.Field) *ServicesSearchRangeCall {
  4244  	c.urlParams_.Set("fields", googleapi.CombineFields(s))
  4245  	return c
  4246  }
  4247  
  4248  // Context sets the context to be used in this call's Do method.
  4249  func (c *ServicesSearchRangeCall) Context(ctx context.Context) *ServicesSearchRangeCall {
  4250  	c.ctx_ = ctx
  4251  	return c
  4252  }
  4253  
  4254  // Header returns a http.Header that can be modified by the caller to add
  4255  // headers to the request.
  4256  func (c *ServicesSearchRangeCall) Header() http.Header {
  4257  	if c.header_ == nil {
  4258  		c.header_ = make(http.Header)
  4259  	}
  4260  	return c.header_
  4261  }
  4262  
  4263  func (c *ServicesSearchRangeCall) doRequest(alt string) (*http.Response, error) {
  4264  	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_)
  4265  	var body io.Reader = nil
  4266  	body, err := googleapi.WithoutDataWrapper.JSONReader(c.searchrangerequest)
  4267  	if err != nil {
  4268  		return nil, err
  4269  	}
  4270  	c.urlParams_.Set("alt", alt)
  4271  	c.urlParams_.Set("prettyPrint", "false")
  4272  	urls := googleapi.ResolveRelative(c.s.BasePath, "v1beta/{+parent}:searchRange")
  4273  	urls += "?" + c.urlParams_.Encode()
  4274  	req, err := http.NewRequest("POST", urls, body)
  4275  	if err != nil {
  4276  		return nil, err
  4277  	}
  4278  	req.Header = reqHeaders
  4279  	googleapi.Expand(req.URL, map[string]string{
  4280  		"parent": c.parent,
  4281  	})
  4282  	return gensupport.SendRequest(c.ctx_, c.s.client, req)
  4283  }
  4284  
  4285  // Do executes the "servicenetworking.services.searchRange" call.
  4286  // Any non-2xx status code is an error. Response headers are in either
  4287  // *Operation.ServerResponse.Header or (if a response was returned at all) in
  4288  // error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check
  4289  // whether the returned error was because http.StatusNotModified was returned.
  4290  func (c *ServicesSearchRangeCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
  4291  	gensupport.SetOptions(c.urlParams_, opts...)
  4292  	res, err := c.doRequest("json")
  4293  	if res != nil && res.StatusCode == http.StatusNotModified {
  4294  		if res.Body != nil {
  4295  			res.Body.Close()
  4296  		}
  4297  		return nil, gensupport.WrapError(&googleapi.Error{
  4298  			Code:   res.StatusCode,
  4299  			Header: res.Header,
  4300  		})
  4301  	}
  4302  	if err != nil {
  4303  		return nil, err
  4304  	}
  4305  	defer googleapi.CloseBody(res)
  4306  	if err := googleapi.CheckResponse(res); err != nil {
  4307  		return nil, gensupport.WrapError(err)
  4308  	}
  4309  	ret := &Operation{
  4310  		ServerResponse: googleapi.ServerResponse{
  4311  			Header:         res.Header,
  4312  			HTTPStatusCode: res.StatusCode,
  4313  		},
  4314  	}
  4315  	target := &ret
  4316  	if err := gensupport.DecodeResponse(target, res); err != nil {
  4317  		return nil, err
  4318  	}
  4319  	return ret, nil
  4320  }
  4321  
  4322  type ServicesUpdateConnectionsCall struct {
  4323  	s                                            *APIService
  4324  	name                                         string
  4325  	googlecloudservicenetworkingv1betaconnection *GoogleCloudServicenetworkingV1betaConnection
  4326  	urlParams_                                   gensupport.URLParams
  4327  	ctx_                                         context.Context
  4328  	header_                                      http.Header
  4329  }
  4330  
  4331  // UpdateConnections: Updates the allocated ranges that are assigned to a
  4332  // connection. The response from the `get` operation will be of type
  4333  // `Connection` if the operation successfully completes.
  4334  //
  4335  //   - name: The service producer peering service that is managing peering
  4336  //     connectivity for a service producer organization. For Google services that
  4337  //     support this functionality, this is
  4338  //     `services/servicenetworking.googleapis.com`.
  4339  func (r *ServicesService) UpdateConnections(name string, googlecloudservicenetworkingv1betaconnection *GoogleCloudServicenetworkingV1betaConnection) *ServicesUpdateConnectionsCall {
  4340  	c := &ServicesUpdateConnectionsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
  4341  	c.name = name
  4342  	c.googlecloudservicenetworkingv1betaconnection = googlecloudservicenetworkingv1betaconnection
  4343  	return c
  4344  }
  4345  
  4346  // Force sets the optional parameter "force": If a previously defined allocated
  4347  // range is removed, force flag must be set to true.
  4348  func (c *ServicesUpdateConnectionsCall) Force(force bool) *ServicesUpdateConnectionsCall {
  4349  	c.urlParams_.Set("force", fmt.Sprint(force))
  4350  	return c
  4351  }
  4352  
  4353  // UpdateMask sets the optional parameter "updateMask": The update mask. If
  4354  // this is omitted, it defaults to "*". You can only update the listed peering
  4355  // ranges.
  4356  func (c *ServicesUpdateConnectionsCall) UpdateMask(updateMask string) *ServicesUpdateConnectionsCall {
  4357  	c.urlParams_.Set("updateMask", updateMask)
  4358  	return c
  4359  }
  4360  
  4361  // Fields allows partial responses to be retrieved. See
  4362  // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more
  4363  // details.
  4364  func (c *ServicesUpdateConnectionsCall) Fields(s ...googleapi.Field) *ServicesUpdateConnectionsCall {
  4365  	c.urlParams_.Set("fields", googleapi.CombineFields(s))
  4366  	return c
  4367  }
  4368  
  4369  // Context sets the context to be used in this call's Do method.
  4370  func (c *ServicesUpdateConnectionsCall) Context(ctx context.Context) *ServicesUpdateConnectionsCall {
  4371  	c.ctx_ = ctx
  4372  	return c
  4373  }
  4374  
  4375  // Header returns a http.Header that can be modified by the caller to add
  4376  // headers to the request.
  4377  func (c *ServicesUpdateConnectionsCall) Header() http.Header {
  4378  	if c.header_ == nil {
  4379  		c.header_ = make(http.Header)
  4380  	}
  4381  	return c.header_
  4382  }
  4383  
  4384  func (c *ServicesUpdateConnectionsCall) doRequest(alt string) (*http.Response, error) {
  4385  	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_)
  4386  	var body io.Reader = nil
  4387  	body, err := googleapi.WithoutDataWrapper.JSONReader(c.googlecloudservicenetworkingv1betaconnection)
  4388  	if err != nil {
  4389  		return nil, err
  4390  	}
  4391  	c.urlParams_.Set("alt", alt)
  4392  	c.urlParams_.Set("prettyPrint", "false")
  4393  	urls := googleapi.ResolveRelative(c.s.BasePath, "v1beta/{+name}/connections")
  4394  	urls += "?" + c.urlParams_.Encode()
  4395  	req, err := http.NewRequest("PATCH", urls, body)
  4396  	if err != nil {
  4397  		return nil, err
  4398  	}
  4399  	req.Header = reqHeaders
  4400  	googleapi.Expand(req.URL, map[string]string{
  4401  		"name": c.name,
  4402  	})
  4403  	return gensupport.SendRequest(c.ctx_, c.s.client, req)
  4404  }
  4405  
  4406  // Do executes the "servicenetworking.services.updateConnections" call.
  4407  // Any non-2xx status code is an error. Response headers are in either
  4408  // *Operation.ServerResponse.Header or (if a response was returned at all) in
  4409  // error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check
  4410  // whether the returned error was because http.StatusNotModified was returned.
  4411  func (c *ServicesUpdateConnectionsCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
  4412  	gensupport.SetOptions(c.urlParams_, opts...)
  4413  	res, err := c.doRequest("json")
  4414  	if res != nil && res.StatusCode == http.StatusNotModified {
  4415  		if res.Body != nil {
  4416  			res.Body.Close()
  4417  		}
  4418  		return nil, gensupport.WrapError(&googleapi.Error{
  4419  			Code:   res.StatusCode,
  4420  			Header: res.Header,
  4421  		})
  4422  	}
  4423  	if err != nil {
  4424  		return nil, err
  4425  	}
  4426  	defer googleapi.CloseBody(res)
  4427  	if err := googleapi.CheckResponse(res); err != nil {
  4428  		return nil, gensupport.WrapError(err)
  4429  	}
  4430  	ret := &Operation{
  4431  		ServerResponse: googleapi.ServerResponse{
  4432  			Header:         res.Header,
  4433  			HTTPStatusCode: res.StatusCode,
  4434  		},
  4435  	}
  4436  	target := &ret
  4437  	if err := gensupport.DecodeResponse(target, res); err != nil {
  4438  		return nil, err
  4439  	}
  4440  	return ret, nil
  4441  }
  4442  
  4443  type ServicesConnectionsCreateCall struct {
  4444  	s                                            *APIService
  4445  	parent                                       string
  4446  	googlecloudservicenetworkingv1betaconnection *GoogleCloudServicenetworkingV1betaConnection
  4447  	urlParams_                                   gensupport.URLParams
  4448  	ctx_                                         context.Context
  4449  	header_                                      http.Header
  4450  }
  4451  
  4452  // Create: Creates a private connection that establishes a VPC Network Peering
  4453  // connection to a VPC network in the service producer's organization. The
  4454  // administrator of the service consumer's VPC network invokes this method. The
  4455  // administrator must assign one or more allocated IP ranges for provisioning
  4456  // subnetworks in the service producer's VPC network. This connection is used
  4457  // for all supported services in the service producer's organization, so it
  4458  // only needs to be invoked once. The response from the `get` operation will be
  4459  // of type `Connection` if the operation successfully completes.
  4460  //
  4461  //   - parent: The service that is managing peering connectivity for a service
  4462  //     producer's organization. For Google services that support this
  4463  //     functionality, this value is `services/servicenetworking.googleapis.com`.
  4464  func (r *ServicesConnectionsService) Create(parent string, googlecloudservicenetworkingv1betaconnection *GoogleCloudServicenetworkingV1betaConnection) *ServicesConnectionsCreateCall {
  4465  	c := &ServicesConnectionsCreateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
  4466  	c.parent = parent
  4467  	c.googlecloudservicenetworkingv1betaconnection = googlecloudservicenetworkingv1betaconnection
  4468  	return c
  4469  }
  4470  
  4471  // Fields allows partial responses to be retrieved. See
  4472  // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more
  4473  // details.
  4474  func (c *ServicesConnectionsCreateCall) Fields(s ...googleapi.Field) *ServicesConnectionsCreateCall {
  4475  	c.urlParams_.Set("fields", googleapi.CombineFields(s))
  4476  	return c
  4477  }
  4478  
  4479  // Context sets the context to be used in this call's Do method.
  4480  func (c *ServicesConnectionsCreateCall) Context(ctx context.Context) *ServicesConnectionsCreateCall {
  4481  	c.ctx_ = ctx
  4482  	return c
  4483  }
  4484  
  4485  // Header returns a http.Header that can be modified by the caller to add
  4486  // headers to the request.
  4487  func (c *ServicesConnectionsCreateCall) Header() http.Header {
  4488  	if c.header_ == nil {
  4489  		c.header_ = make(http.Header)
  4490  	}
  4491  	return c.header_
  4492  }
  4493  
  4494  func (c *ServicesConnectionsCreateCall) doRequest(alt string) (*http.Response, error) {
  4495  	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_)
  4496  	var body io.Reader = nil
  4497  	body, err := googleapi.WithoutDataWrapper.JSONReader(c.googlecloudservicenetworkingv1betaconnection)
  4498  	if err != nil {
  4499  		return nil, err
  4500  	}
  4501  	c.urlParams_.Set("alt", alt)
  4502  	c.urlParams_.Set("prettyPrint", "false")
  4503  	urls := googleapi.ResolveRelative(c.s.BasePath, "v1beta/{+parent}/connections")
  4504  	urls += "?" + c.urlParams_.Encode()
  4505  	req, err := http.NewRequest("POST", urls, body)
  4506  	if err != nil {
  4507  		return nil, err
  4508  	}
  4509  	req.Header = reqHeaders
  4510  	googleapi.Expand(req.URL, map[string]string{
  4511  		"parent": c.parent,
  4512  	})
  4513  	return gensupport.SendRequest(c.ctx_, c.s.client, req)
  4514  }
  4515  
  4516  // Do executes the "servicenetworking.services.connections.create" call.
  4517  // Any non-2xx status code is an error. Response headers are in either
  4518  // *Operation.ServerResponse.Header or (if a response was returned at all) in
  4519  // error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check
  4520  // whether the returned error was because http.StatusNotModified was returned.
  4521  func (c *ServicesConnectionsCreateCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
  4522  	gensupport.SetOptions(c.urlParams_, opts...)
  4523  	res, err := c.doRequest("json")
  4524  	if res != nil && res.StatusCode == http.StatusNotModified {
  4525  		if res.Body != nil {
  4526  			res.Body.Close()
  4527  		}
  4528  		return nil, gensupport.WrapError(&googleapi.Error{
  4529  			Code:   res.StatusCode,
  4530  			Header: res.Header,
  4531  		})
  4532  	}
  4533  	if err != nil {
  4534  		return nil, err
  4535  	}
  4536  	defer googleapi.CloseBody(res)
  4537  	if err := googleapi.CheckResponse(res); err != nil {
  4538  		return nil, gensupport.WrapError(err)
  4539  	}
  4540  	ret := &Operation{
  4541  		ServerResponse: googleapi.ServerResponse{
  4542  			Header:         res.Header,
  4543  			HTTPStatusCode: res.StatusCode,
  4544  		},
  4545  	}
  4546  	target := &ret
  4547  	if err := gensupport.DecodeResponse(target, res); err != nil {
  4548  		return nil, err
  4549  	}
  4550  	return ret, nil
  4551  }
  4552  
  4553  type ServicesConnectionsListCall struct {
  4554  	s            *APIService
  4555  	parent       string
  4556  	urlParams_   gensupport.URLParams
  4557  	ifNoneMatch_ string
  4558  	ctx_         context.Context
  4559  	header_      http.Header
  4560  }
  4561  
  4562  // List: List the private connections that are configured in a service
  4563  // consumer's VPC network.
  4564  //
  4565  //   - parent: The service that is managing peering connectivity for a service
  4566  //     producer's organization. For Google services that support this
  4567  //     functionality, this value is `services/servicenetworking.googleapis.com`.
  4568  //     If you specify `-` as the parameter value, all configured public peering
  4569  //     services are listed.
  4570  func (r *ServicesConnectionsService) List(parent string) *ServicesConnectionsListCall {
  4571  	c := &ServicesConnectionsListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
  4572  	c.parent = parent
  4573  	return c
  4574  }
  4575  
  4576  // Network sets the optional parameter "network": The name of service
  4577  // consumer's VPC network that's connected with service producer network
  4578  // through a private connection. The network name must be in the following
  4579  // format: `projects/{project}/global/networks/{network}`. {project} is a
  4580  // project number, such as in `12345` that includes the VPC service consumer's
  4581  // VPC network. {network} is the name of the service consumer's VPC network.
  4582  func (c *ServicesConnectionsListCall) Network(network string) *ServicesConnectionsListCall {
  4583  	c.urlParams_.Set("network", network)
  4584  	return c
  4585  }
  4586  
  4587  // Fields allows partial responses to be retrieved. See
  4588  // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more
  4589  // details.
  4590  func (c *ServicesConnectionsListCall) Fields(s ...googleapi.Field) *ServicesConnectionsListCall {
  4591  	c.urlParams_.Set("fields", googleapi.CombineFields(s))
  4592  	return c
  4593  }
  4594  
  4595  // IfNoneMatch sets an optional parameter which makes the operation fail if the
  4596  // object's ETag matches the given value. This is useful for getting updates
  4597  // only after the object has changed since the last request.
  4598  func (c *ServicesConnectionsListCall) IfNoneMatch(entityTag string) *ServicesConnectionsListCall {
  4599  	c.ifNoneMatch_ = entityTag
  4600  	return c
  4601  }
  4602  
  4603  // Context sets the context to be used in this call's Do method.
  4604  func (c *ServicesConnectionsListCall) Context(ctx context.Context) *ServicesConnectionsListCall {
  4605  	c.ctx_ = ctx
  4606  	return c
  4607  }
  4608  
  4609  // Header returns a http.Header that can be modified by the caller to add
  4610  // headers to the request.
  4611  func (c *ServicesConnectionsListCall) Header() http.Header {
  4612  	if c.header_ == nil {
  4613  		c.header_ = make(http.Header)
  4614  	}
  4615  	return c.header_
  4616  }
  4617  
  4618  func (c *ServicesConnectionsListCall) doRequest(alt string) (*http.Response, error) {
  4619  	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_)
  4620  	if c.ifNoneMatch_ != "" {
  4621  		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
  4622  	}
  4623  	var body io.Reader = nil
  4624  	c.urlParams_.Set("alt", alt)
  4625  	c.urlParams_.Set("prettyPrint", "false")
  4626  	urls := googleapi.ResolveRelative(c.s.BasePath, "v1beta/{+parent}/connections")
  4627  	urls += "?" + c.urlParams_.Encode()
  4628  	req, err := http.NewRequest("GET", urls, body)
  4629  	if err != nil {
  4630  		return nil, err
  4631  	}
  4632  	req.Header = reqHeaders
  4633  	googleapi.Expand(req.URL, map[string]string{
  4634  		"parent": c.parent,
  4635  	})
  4636  	return gensupport.SendRequest(c.ctx_, c.s.client, req)
  4637  }
  4638  
  4639  // Do executes the "servicenetworking.services.connections.list" call.
  4640  // Any non-2xx status code is an error. Response headers are in either
  4641  // *ListConnectionsResponse.ServerResponse.Header or (if a response was
  4642  // returned at all) in error.(*googleapi.Error).Header. Use
  4643  // googleapi.IsNotModified to check whether the returned error was because
  4644  // http.StatusNotModified was returned.
  4645  func (c *ServicesConnectionsListCall) Do(opts ...googleapi.CallOption) (*ListConnectionsResponse, error) {
  4646  	gensupport.SetOptions(c.urlParams_, opts...)
  4647  	res, err := c.doRequest("json")
  4648  	if res != nil && res.StatusCode == http.StatusNotModified {
  4649  		if res.Body != nil {
  4650  			res.Body.Close()
  4651  		}
  4652  		return nil, gensupport.WrapError(&googleapi.Error{
  4653  			Code:   res.StatusCode,
  4654  			Header: res.Header,
  4655  		})
  4656  	}
  4657  	if err != nil {
  4658  		return nil, err
  4659  	}
  4660  	defer googleapi.CloseBody(res)
  4661  	if err := googleapi.CheckResponse(res); err != nil {
  4662  		return nil, gensupport.WrapError(err)
  4663  	}
  4664  	ret := &ListConnectionsResponse{
  4665  		ServerResponse: googleapi.ServerResponse{
  4666  			Header:         res.Header,
  4667  			HTTPStatusCode: res.StatusCode,
  4668  		},
  4669  	}
  4670  	target := &ret
  4671  	if err := gensupport.DecodeResponse(target, res); err != nil {
  4672  		return nil, err
  4673  	}
  4674  	return ret, nil
  4675  }
  4676  

View as plain text