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¶m=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