1// Copyright 2020 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 apigateway provides access to the API Gateway API.
8//
9// For product documentation, see:  https://cloud.google.com/api-gateway/docs
10//
11// Creating a client
12//
13// Usage example:
14//
15//   import "google.golang.org/api/apigateway/v1alpha2"
16//   ...
17//   ctx := context.Background()
18//   apigatewayService, err := apigateway.NewService(ctx)
19//
20// In this example, Google Application Default Credentials are used for authentication.
21//
22// For information on how to create and obtain Application Default Credentials, see https://developers.google.com/identity/protocols/application-default-credentials.
23//
24// Other authentication options
25//
26// To use an API key for authentication (note: some APIs do not support API keys), use option.WithAPIKey:
27//
28//   apigatewayService, err := apigateway.NewService(ctx, option.WithAPIKey("AIza..."))
29//
30// To use an OAuth token (e.g., a user token obtained via a three-legged OAuth flow), use option.WithTokenSource:
31//
32//   config := &oauth2.Config{...}
33//   // ...
34//   token, err := config.Exchange(ctx, ...)
35//   apigatewayService, err := apigateway.NewService(ctx, option.WithTokenSource(config.TokenSource(ctx, token)))
36//
37// See https://godoc.org/google.golang.org/api/option/ for details on options.
38package apigateway // import "google.golang.org/api/apigateway/v1alpha2"
39
40import (
41	"bytes"
42	"context"
43	"encoding/json"
44	"errors"
45	"fmt"
46	"io"
47	"net/http"
48	"net/url"
49	"strconv"
50	"strings"
51
52	googleapi "google.golang.org/api/googleapi"
53	gensupport "google.golang.org/api/internal/gensupport"
54	option "google.golang.org/api/option"
55	internaloption "google.golang.org/api/option/internaloption"
56	htransport "google.golang.org/api/transport/http"
57)
58
59// Always reference these packages, just in case the auto-generated code
60// below doesn't.
61var _ = bytes.NewBuffer
62var _ = strconv.Itoa
63var _ = fmt.Sprintf
64var _ = json.NewDecoder
65var _ = io.Copy
66var _ = url.Parse
67var _ = gensupport.MarshalJSON
68var _ = googleapi.Version
69var _ = errors.New
70var _ = strings.Replace
71var _ = context.Canceled
72var _ = internaloption.WithDefaultEndpoint
73
74const apiId = "apigateway:v1alpha2"
75const apiName = "apigateway"
76const apiVersion = "v1alpha2"
77const basePath = "https://apigateway.googleapis.com/"
78const mtlsBasePath = "https://apigateway.mtls.googleapis.com/"
79
80// OAuth2 scopes used by this API.
81const (
82	// View and manage your data across Google Cloud Platform services
83	CloudPlatformScope = "https://www.googleapis.com/auth/cloud-platform"
84)
85
86// NewService creates a new Service.
87func NewService(ctx context.Context, opts ...option.ClientOption) (*Service, error) {
88	scopesOption := option.WithScopes(
89		"https://www.googleapis.com/auth/cloud-platform",
90	)
91	// NOTE: prepend, so we don't override user-specified scopes.
92	opts = append([]option.ClientOption{scopesOption}, opts...)
93	opts = append(opts, internaloption.WithDefaultEndpoint(basePath))
94	opts = append(opts, internaloption.WithDefaultMTLSEndpoint(mtlsBasePath))
95	client, endpoint, err := htransport.NewClient(ctx, opts...)
96	if err != nil {
97		return nil, err
98	}
99	s, err := New(client)
100	if err != nil {
101		return nil, err
102	}
103	if endpoint != "" {
104		s.BasePath = endpoint
105	}
106	return s, nil
107}
108
109// New creates a new Service. It uses the provided http.Client for requests.
110//
111// Deprecated: please use NewService instead.
112// To provide a custom HTTP client, use option.WithHTTPClient.
113// If you are using google.golang.org/api/googleapis/transport.APIKey, use option.WithAPIKey with NewService instead.
114func New(client *http.Client) (*Service, error) {
115	if client == nil {
116		return nil, errors.New("client is nil")
117	}
118	s := &Service{client: client, BasePath: basePath}
119	s.Projects = NewProjectsService(s)
120	return s, nil
121}
122
123type Service struct {
124	client    *http.Client
125	BasePath  string // API endpoint base URL
126	UserAgent string // optional additional User-Agent fragment
127
128	Projects *ProjectsService
129}
130
131func (s *Service) userAgent() string {
132	if s.UserAgent == "" {
133		return googleapi.UserAgent
134	}
135	return googleapi.UserAgent + " " + s.UserAgent
136}
137
138func NewProjectsService(s *Service) *ProjectsService {
139	rs := &ProjectsService{s: s}
140	rs.Locations = NewProjectsLocationsService(s)
141	return rs
142}
143
144type ProjectsService struct {
145	s *Service
146
147	Locations *ProjectsLocationsService
148}
149
150func NewProjectsLocationsService(s *Service) *ProjectsLocationsService {
151	rs := &ProjectsLocationsService{s: s}
152	rs.Apis = NewProjectsLocationsApisService(s)
153	rs.Gateways = NewProjectsLocationsGatewaysService(s)
154	rs.Operations = NewProjectsLocationsOperationsService(s)
155	return rs
156}
157
158type ProjectsLocationsService struct {
159	s *Service
160
161	Apis *ProjectsLocationsApisService
162
163	Gateways *ProjectsLocationsGatewaysService
164
165	Operations *ProjectsLocationsOperationsService
166}
167
168func NewProjectsLocationsApisService(s *Service) *ProjectsLocationsApisService {
169	rs := &ProjectsLocationsApisService{s: s}
170	rs.Configs = NewProjectsLocationsApisConfigsService(s)
171	return rs
172}
173
174type ProjectsLocationsApisService struct {
175	s *Service
176
177	Configs *ProjectsLocationsApisConfigsService
178}
179
180func NewProjectsLocationsApisConfigsService(s *Service) *ProjectsLocationsApisConfigsService {
181	rs := &ProjectsLocationsApisConfigsService{s: s}
182	return rs
183}
184
185type ProjectsLocationsApisConfigsService struct {
186	s *Service
187}
188
189func NewProjectsLocationsGatewaysService(s *Service) *ProjectsLocationsGatewaysService {
190	rs := &ProjectsLocationsGatewaysService{s: s}
191	return rs
192}
193
194type ProjectsLocationsGatewaysService struct {
195	s *Service
196}
197
198func NewProjectsLocationsOperationsService(s *Service) *ProjectsLocationsOperationsService {
199	rs := &ProjectsLocationsOperationsService{s: s}
200	return rs
201}
202
203type ProjectsLocationsOperationsService struct {
204	s *Service
205}
206
207// ApigatewayAuditConfig: Specifies the audit configuration for a
208// service. The configuration determines which permission types are
209// logged, and what identities, if any, are exempted from logging. An
210// AuditConfig must have one or more AuditLogConfigs. If there are
211// AuditConfigs for both `allServices` and a specific service, the union
212// of the two AuditConfigs is used for that service: the log_types
213// specified in each AuditConfig are enabled, and the exempted_members
214// in each AuditLogConfig are exempted. Example Policy with multiple
215// AuditConfigs: { "audit_configs": [ { "service": "allServices",
216// "audit_log_configs": [ { "log_type": "DATA_READ", "exempted_members":
217// [ "user:jose@example.com" ] }, { "log_type": "DATA_WRITE" }, {
218// "log_type": "ADMIN_READ" } ] }, { "service":
219// "sampleservice.googleapis.com", "audit_log_configs": [ { "log_type":
220// "DATA_READ" }, { "log_type": "DATA_WRITE", "exempted_members": [
221// "user:aliya@example.com" ] } ] } ] } For sampleservice, this policy
222// enables DATA_READ, DATA_WRITE and ADMIN_READ logging. It also exempts
223// jose@example.com from DATA_READ logging, and aliya@example.com from
224// DATA_WRITE logging.
225type ApigatewayAuditConfig struct {
226	// AuditLogConfigs: The configuration for logging of each type of
227	// permission.
228	AuditLogConfigs []*ApigatewayAuditLogConfig `json:"auditLogConfigs,omitempty"`
229
230	// Service: Specifies a service that will be enabled for audit logging.
231	// For example, `storage.googleapis.com`, `cloudsql.googleapis.com`.
232	// `allServices` is a special value that covers all services.
233	Service string `json:"service,omitempty"`
234
235	// ForceSendFields is a list of field names (e.g. "AuditLogConfigs") to
236	// unconditionally include in API requests. By default, fields with
237	// empty values are omitted from API requests. However, any non-pointer,
238	// non-interface field appearing in ForceSendFields will be sent to the
239	// server regardless of whether the field is empty or not. This may be
240	// used to include empty fields in Patch requests.
241	ForceSendFields []string `json:"-"`
242
243	// NullFields is a list of field names (e.g. "AuditLogConfigs") to
244	// include in API requests with the JSON null value. By default, fields
245	// with empty values are omitted from API requests. However, any field
246	// with an empty value appearing in NullFields will be sent to the
247	// server as null. It is an error if a field in this list has a
248	// non-empty value. This may be used to include null fields in Patch
249	// requests.
250	NullFields []string `json:"-"`
251}
252
253func (s *ApigatewayAuditConfig) MarshalJSON() ([]byte, error) {
254	type NoMethod ApigatewayAuditConfig
255	raw := NoMethod(*s)
256	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
257}
258
259// ApigatewayAuditLogConfig: Provides the configuration for logging a
260// type of permissions. Example: { "audit_log_configs": [ { "log_type":
261// "DATA_READ", "exempted_members": [ "user:jose@example.com" ] }, {
262// "log_type": "DATA_WRITE" } ] } This enables 'DATA_READ' and
263// 'DATA_WRITE' logging, while exempting jose@example.com from DATA_READ
264// logging.
265type ApigatewayAuditLogConfig struct {
266	// ExemptedMembers: Specifies the identities that do not cause logging
267	// for this type of permission. Follows the same format of
268	// Binding.members.
269	ExemptedMembers []string `json:"exemptedMembers,omitempty"`
270
271	// LogType: The log type that this config enables.
272	//
273	// Possible values:
274	//   "LOG_TYPE_UNSPECIFIED" - Default case. Should never be this.
275	//   "ADMIN_READ" - Admin reads. Example: CloudIAM getIamPolicy
276	//   "DATA_WRITE" - Data writes. Example: CloudSQL Users create
277	//   "DATA_READ" - Data reads. Example: CloudSQL Users list
278	LogType string `json:"logType,omitempty"`
279
280	// ForceSendFields is a list of field names (e.g. "ExemptedMembers") to
281	// unconditionally include in API requests. By default, fields with
282	// empty values are omitted from API requests. However, any non-pointer,
283	// non-interface field appearing in ForceSendFields will be sent to the
284	// server regardless of whether the field is empty or not. This may be
285	// used to include empty fields in Patch requests.
286	ForceSendFields []string `json:"-"`
287
288	// NullFields is a list of field names (e.g. "ExemptedMembers") to
289	// include in API requests with the JSON null value. By default, fields
290	// with empty values are omitted from API requests. However, any field
291	// with an empty value appearing in NullFields will be sent to the
292	// server as null. It is an error if a field in this list has a
293	// non-empty value. This may be used to include null fields in Patch
294	// requests.
295	NullFields []string `json:"-"`
296}
297
298func (s *ApigatewayAuditLogConfig) MarshalJSON() ([]byte, error) {
299	type NoMethod ApigatewayAuditLogConfig
300	raw := NoMethod(*s)
301	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
302}
303
304// ApigatewayBinding: Associates `members` with a `role`.
305type ApigatewayBinding struct {
306	// Condition: The condition that is associated with this binding. If the
307	// condition evaluates to `true`, then this binding applies to the
308	// current request. If the condition evaluates to `false`, then this
309	// binding does not apply to the current request. However, a different
310	// role binding might grant the same role to one or more of the members
311	// in this binding. To learn which resources support conditions in their
312	// IAM policies, see the [IAM
313	// documentation](https://cloud.google.com/iam/help/conditions/resource-p
314	// olicies).
315	Condition *ApigatewayExpr `json:"condition,omitempty"`
316
317	// Members: Specifies the identities requesting access for a Cloud
318	// Platform resource. `members` can have the following values: *
319	// `allUsers`: A special identifier that represents anyone who is on the
320	// internet; with or without a Google account. *
321	// `allAuthenticatedUsers`: A special identifier that represents anyone
322	// who is authenticated with a Google account or a service account. *
323	// `user:{emailid}`: An email address that represents a specific Google
324	// account. For example, `alice@example.com` . *
325	// `serviceAccount:{emailid}`: An email address that represents a
326	// service account. For example,
327	// `my-other-app@appspot.gserviceaccount.com`. * `group:{emailid}`: An
328	// email address that represents a Google group. For example,
329	// `admins@example.com`. * `deleted:user:{emailid}?uid={uniqueid}`: An
330	// email address (plus unique identifier) representing a user that has
331	// been recently deleted. For example,
332	// `alice@example.com?uid=123456789012345678901`. If the user is
333	// recovered, this value reverts to `user:{emailid}` and the recovered
334	// user retains the role in the binding. *
335	// `deleted:serviceAccount:{emailid}?uid={uniqueid}`: An email address
336	// (plus unique identifier) representing a service account that has been
337	// recently deleted. For example,
338	// `my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901`.
339	// If the service account is undeleted, this value reverts to
340	// `serviceAccount:{emailid}` and the undeleted service account retains
341	// the role in the binding. * `deleted:group:{emailid}?uid={uniqueid}`:
342	// An email address (plus unique identifier) representing a Google group
343	// that has been recently deleted. For example,
344	// `admins@example.com?uid=123456789012345678901`. If the group is
345	// recovered, this value reverts to `group:{emailid}` and the recovered
346	// group retains the role in the binding. * `domain:{domain}`: The G
347	// Suite domain (primary) that represents all the users of that domain.
348	// For example, `google.com` or `example.com`.
349	Members []string `json:"members,omitempty"`
350
351	// Role: Role that is assigned to `members`. For example,
352	// `roles/viewer`, `roles/editor`, or `roles/owner`.
353	Role string `json:"role,omitempty"`
354
355	// ForceSendFields is a list of field names (e.g. "Condition") to
356	// unconditionally include in API requests. By default, fields with
357	// empty values are omitted from API requests. However, any non-pointer,
358	// non-interface field appearing in ForceSendFields will be sent to the
359	// server regardless of whether the field is empty or not. This may be
360	// used to include empty fields in Patch requests.
361	ForceSendFields []string `json:"-"`
362
363	// NullFields is a list of field names (e.g. "Condition") to include in
364	// API requests with the JSON null value. By default, fields with empty
365	// values are omitted from API requests. However, any field with an
366	// empty value appearing in NullFields will be sent to the server as
367	// null. It is an error if a field in this list has a non-empty value.
368	// This may be used to include null fields in Patch requests.
369	NullFields []string `json:"-"`
370}
371
372func (s *ApigatewayBinding) MarshalJSON() ([]byte, error) {
373	type NoMethod ApigatewayBinding
374	raw := NoMethod(*s)
375	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
376}
377
378// ApigatewayCancelOperationRequest: The request message for
379// Operations.CancelOperation.
380type ApigatewayCancelOperationRequest struct {
381}
382
383// ApigatewayExpr: Represents a textual expression in the Common
384// Expression Language (CEL) syntax. CEL is a C-like expression
385// language. The syntax and semantics of CEL are documented at
386// https://github.com/google/cel-spec. Example (Comparison): title:
387// "Summary size limit" description: "Determines if a summary is less
388// than 100 chars" expression: "document.summary.size() < 100" Example
389// (Equality): title: "Requestor is owner" description: "Determines if
390// requestor is the document owner" expression: "document.owner ==
391// request.auth.claims.email" Example (Logic): title: "Public documents"
392// description: "Determine whether the document should be publicly
393// visible" expression: "document.type != 'private' && document.type !=
394// 'internal'" Example (Data Manipulation): title: "Notification string"
395// description: "Create a notification string with a timestamp."
396// expression: "'New message received at ' +
397// string(document.create_time)" The exact variables and functions that
398// may be referenced within an expression are determined by the service
399// that evaluates it. See the service documentation for additional
400// information.
401type ApigatewayExpr struct {
402	// Description: Optional. Description of the expression. This is a
403	// longer text which describes the expression, e.g. when hovered over it
404	// in a UI.
405	Description string `json:"description,omitempty"`
406
407	// Expression: Textual representation of an expression in Common
408	// Expression Language syntax.
409	Expression string `json:"expression,omitempty"`
410
411	// Location: Optional. String indicating the location of the expression
412	// for error reporting, e.g. a file name and a position in the file.
413	Location string `json:"location,omitempty"`
414
415	// Title: Optional. Title for the expression, i.e. a short string
416	// describing its purpose. This can be used e.g. in UIs which allow to
417	// enter the expression.
418	Title string `json:"title,omitempty"`
419
420	// ForceSendFields is a list of field names (e.g. "Description") to
421	// unconditionally include in API requests. By default, fields with
422	// empty values are omitted from API requests. However, any non-pointer,
423	// non-interface field appearing in ForceSendFields will be sent to the
424	// server regardless of whether the field is empty or not. This may be
425	// used to include empty fields in Patch requests.
426	ForceSendFields []string `json:"-"`
427
428	// NullFields is a list of field names (e.g. "Description") to include
429	// in API requests with the JSON null value. By default, fields with
430	// empty values are omitted from API requests. However, any field with
431	// an empty value appearing in NullFields will be sent to the server as
432	// null. It is an error if a field in this list has a non-empty value.
433	// This may be used to include null fields in Patch requests.
434	NullFields []string `json:"-"`
435}
436
437func (s *ApigatewayExpr) MarshalJSON() ([]byte, error) {
438	type NoMethod ApigatewayExpr
439	raw := NoMethod(*s)
440	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
441}
442
443// ApigatewayListLocationsResponse: The response message for
444// Locations.ListLocations.
445type ApigatewayListLocationsResponse struct {
446	// Locations: A list of locations that matches the specified filter in
447	// the request.
448	Locations []*ApigatewayLocation `json:"locations,omitempty"`
449
450	// NextPageToken: The standard List next-page token.
451	NextPageToken string `json:"nextPageToken,omitempty"`
452
453	// ServerResponse contains the HTTP response code and headers from the
454	// server.
455	googleapi.ServerResponse `json:"-"`
456
457	// ForceSendFields is a list of field names (e.g. "Locations") to
458	// unconditionally include in API requests. By default, fields with
459	// empty values are omitted from API requests. However, any non-pointer,
460	// non-interface field appearing in ForceSendFields will be sent to the
461	// server regardless of whether the field is empty or not. This may be
462	// used to include empty fields in Patch requests.
463	ForceSendFields []string `json:"-"`
464
465	// NullFields is a list of field names (e.g. "Locations") to include in
466	// API requests with the JSON null value. By default, fields with empty
467	// values are omitted from API requests. However, any field with an
468	// empty value appearing in NullFields will be sent to the server as
469	// null. It is an error if a field in this list has a non-empty value.
470	// This may be used to include null fields in Patch requests.
471	NullFields []string `json:"-"`
472}
473
474func (s *ApigatewayListLocationsResponse) MarshalJSON() ([]byte, error) {
475	type NoMethod ApigatewayListLocationsResponse
476	raw := NoMethod(*s)
477	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
478}
479
480// ApigatewayListOperationsResponse: The response message for
481// Operations.ListOperations.
482type ApigatewayListOperationsResponse struct {
483	// NextPageToken: The standard List next-page token.
484	NextPageToken string `json:"nextPageToken,omitempty"`
485
486	// Operations: A list of operations that matches the specified filter in
487	// the request.
488	Operations []*ApigatewayOperation `json:"operations,omitempty"`
489
490	// ServerResponse contains the HTTP response code and headers from the
491	// server.
492	googleapi.ServerResponse `json:"-"`
493
494	// ForceSendFields is a list of field names (e.g. "NextPageToken") to
495	// unconditionally include in API requests. By default, fields with
496	// empty values are omitted from API requests. However, any non-pointer,
497	// non-interface field appearing in ForceSendFields will be sent to the
498	// server regardless of whether the field is empty or not. This may be
499	// used to include empty fields in Patch requests.
500	ForceSendFields []string `json:"-"`
501
502	// NullFields is a list of field names (e.g. "NextPageToken") to include
503	// in API requests with the JSON null value. By default, fields with
504	// empty values are omitted from API requests. However, any field with
505	// an empty value appearing in NullFields will be sent to the server as
506	// null. It is an error if a field in this list has a non-empty value.
507	// This may be used to include null fields in Patch requests.
508	NullFields []string `json:"-"`
509}
510
511func (s *ApigatewayListOperationsResponse) MarshalJSON() ([]byte, error) {
512	type NoMethod ApigatewayListOperationsResponse
513	raw := NoMethod(*s)
514	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
515}
516
517// ApigatewayLocation: A resource that represents Google Cloud Platform
518// location.
519type ApigatewayLocation struct {
520	// DisplayName: The friendly name for this location, typically a nearby
521	// city name. For example, "Tokyo".
522	DisplayName string `json:"displayName,omitempty"`
523
524	// Labels: Cross-service attributes for the location. For example
525	// {"cloud.googleapis.com/region": "us-east1"}
526	Labels map[string]string `json:"labels,omitempty"`
527
528	// LocationId: The canonical id for this location. For example:
529	// "us-east1".
530	LocationId string `json:"locationId,omitempty"`
531
532	// Metadata: Service-specific metadata. For example the available
533	// capacity at the given location.
534	Metadata googleapi.RawMessage `json:"metadata,omitempty"`
535
536	// Name: Resource name for the location, which may vary between
537	// implementations. For example:
538	// "projects/example-project/locations/us-east1"
539	Name string `json:"name,omitempty"`
540
541	// ServerResponse contains the HTTP response code and headers from the
542	// server.
543	googleapi.ServerResponse `json:"-"`
544
545	// ForceSendFields is a list of field names (e.g. "DisplayName") to
546	// unconditionally include in API requests. By default, fields with
547	// empty values are omitted from API requests. However, any non-pointer,
548	// non-interface field appearing in ForceSendFields will be sent to the
549	// server regardless of whether the field is empty or not. This may be
550	// used to include empty fields in Patch requests.
551	ForceSendFields []string `json:"-"`
552
553	// NullFields is a list of field names (e.g. "DisplayName") to include
554	// in API requests with the JSON null value. By default, fields with
555	// empty values are omitted from API requests. However, any field with
556	// an empty value appearing in NullFields will be sent to the server as
557	// null. It is an error if a field in this list has a non-empty value.
558	// This may be used to include null fields in Patch requests.
559	NullFields []string `json:"-"`
560}
561
562func (s *ApigatewayLocation) MarshalJSON() ([]byte, error) {
563	type NoMethod ApigatewayLocation
564	raw := NoMethod(*s)
565	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
566}
567
568// ApigatewayOperation: This resource represents a long-running
569// operation that is the result of a network API call.
570type ApigatewayOperation struct {
571	// Done: If the value is `false`, it means the operation is still in
572	// progress. If `true`, the operation is completed, and either `error`
573	// or `response` is available.
574	Done bool `json:"done,omitempty"`
575
576	// Error: The error result of the operation in case of failure or
577	// cancellation.
578	Error *ApigatewayStatus `json:"error,omitempty"`
579
580	// Metadata: Service-specific metadata associated with the operation. It
581	// typically contains progress information and common metadata such as
582	// create time. Some services might not provide such metadata. Any
583	// method that returns a long-running operation should document the
584	// metadata type, if any.
585	Metadata googleapi.RawMessage `json:"metadata,omitempty"`
586
587	// Name: The server-assigned name, which is only unique within the same
588	// service that originally returns it. If you use the default HTTP
589	// mapping, the `name` should be a resource name ending with
590	// `operations/{unique_id}`.
591	Name string `json:"name,omitempty"`
592
593	// Response: The normal response of the operation in case of success. If
594	// the original method returns no data on success, such as `Delete`, the
595	// response is `google.protobuf.Empty`. If the original method is
596	// standard `Get`/`Create`/`Update`, the response should be the
597	// resource. For other methods, the response should have the type
598	// `XxxResponse`, where `Xxx` is the original method name. For example,
599	// if the original method name is `TakeSnapshot()`, the inferred
600	// response type is `TakeSnapshotResponse`.
601	Response googleapi.RawMessage `json:"response,omitempty"`
602
603	// ServerResponse contains the HTTP response code and headers from the
604	// server.
605	googleapi.ServerResponse `json:"-"`
606
607	// ForceSendFields is a list of field names (e.g. "Done") to
608	// unconditionally include in API requests. By default, fields with
609	// empty values are omitted from API requests. However, any non-pointer,
610	// non-interface field appearing in ForceSendFields will be sent to the
611	// server regardless of whether the field is empty or not. This may be
612	// used to include empty fields in Patch requests.
613	ForceSendFields []string `json:"-"`
614
615	// NullFields is a list of field names (e.g. "Done") to include in API
616	// requests with the JSON null value. By default, fields with empty
617	// values are omitted from API requests. However, any field with an
618	// empty value appearing in NullFields will be sent to the server as
619	// null. It is an error if a field in this list has a non-empty value.
620	// This may be used to include null fields in Patch requests.
621	NullFields []string `json:"-"`
622}
623
624func (s *ApigatewayOperation) MarshalJSON() ([]byte, error) {
625	type NoMethod ApigatewayOperation
626	raw := NoMethod(*s)
627	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
628}
629
630// ApigatewayPolicy: An Identity and Access Management (IAM) policy,
631// which specifies access controls for Google Cloud resources. A
632// `Policy` is a collection of `bindings`. A `binding` binds one or more
633// `members` to a single `role`. Members can be user accounts, service
634// accounts, Google groups, and domains (such as G Suite). A `role` is a
635// named list of permissions; each `role` can be an IAM predefined role
636// or a user-created custom role. For some types of Google Cloud
637// resources, a `binding` can also specify a `condition`, which is a
638// logical expression that allows access to a resource only if the
639// expression evaluates to `true`. A condition can add constraints based
640// on attributes of the request, the resource, or both. To learn which
641// resources support conditions in their IAM policies, see the [IAM
642// documentation](https://cloud.google.com/iam/help/conditions/resource-p
643// olicies). **JSON example:** { "bindings": [ { "role":
644// "roles/resourcemanager.organizationAdmin", "members": [
645// "user:mike@example.com", "group:admins@example.com",
646// "domain:google.com",
647// "serviceAccount:my-project-id@appspot.gserviceaccount.com" ] }, {
648// "role": "roles/resourcemanager.organizationViewer", "members": [
649// "user:eve@example.com" ], "condition": { "title": "expirable access",
650// "description": "Does not grant access after Sep 2020", "expression":
651// "request.time < timestamp('2020-10-01T00:00:00.000Z')", } } ],
652// "etag": "BwWWja0YfJA=", "version": 3 } **YAML example:** bindings: -
653// members: - user:mike@example.com - group:admins@example.com -
654// domain:google.com -
655// serviceAccount:my-project-id@appspot.gserviceaccount.com role:
656// roles/resourcemanager.organizationAdmin - members: -
657// user:eve@example.com role: roles/resourcemanager.organizationViewer
658// condition: title: expirable access description: Does not grant access
659// after Sep 2020 expression: request.time <
660// timestamp('2020-10-01T00:00:00.000Z') - etag: BwWWja0YfJA= - version:
661// 3 For a description of IAM and its features, see the [IAM
662// documentation](https://cloud.google.com/iam/docs/).
663type ApigatewayPolicy struct {
664	// AuditConfigs: Specifies cloud audit logging configuration for this
665	// policy.
666	AuditConfigs []*ApigatewayAuditConfig `json:"auditConfigs,omitempty"`
667
668	// Bindings: Associates a list of `members` to a `role`. Optionally, may
669	// specify a `condition` that determines how and when the `bindings` are
670	// applied. Each of the `bindings` must contain at least one member.
671	Bindings []*ApigatewayBinding `json:"bindings,omitempty"`
672
673	// Etag: `etag` is used for optimistic concurrency control as a way to
674	// help prevent simultaneous updates of a policy from overwriting each
675	// other. It is strongly suggested that systems make use of the `etag`
676	// in the read-modify-write cycle to perform policy updates in order to
677	// avoid race conditions: An `etag` is returned in the response to
678	// `getIamPolicy`, and systems are expected to put that etag in the
679	// request to `setIamPolicy` to ensure that their change will be applied
680	// to the same version of the policy. **Important:** If you use IAM
681	// Conditions, you must include the `etag` field whenever you call
682	// `setIamPolicy`. If you omit this field, then IAM allows you to
683	// overwrite a version `3` policy with a version `1` policy, and all of
684	// the conditions in the version `3` policy are lost.
685	Etag string `json:"etag,omitempty"`
686
687	// Version: Specifies the format of the policy. Valid values are `0`,
688	// `1`, and `3`. Requests that specify an invalid value are rejected.
689	// Any operation that affects conditional role bindings must specify
690	// version `3`. This requirement applies to the following operations: *
691	// Getting a policy that includes a conditional role binding * Adding a
692	// conditional role binding to a policy * Changing a conditional role
693	// binding in a policy * Removing any role binding, with or without a
694	// condition, from a policy that includes conditions **Important:** If
695	// you use IAM Conditions, you must include the `etag` field whenever
696	// you call `setIamPolicy`. If you omit this field, then IAM allows you
697	// to overwrite a version `3` policy with a version `1` policy, and all
698	// of the conditions in the version `3` policy are lost. If a policy
699	// does not include any conditions, operations on that policy may
700	// specify any valid version or leave the field unset. To learn which
701	// resources support conditions in their IAM policies, see the [IAM
702	// documentation](https://cloud.google.com/iam/help/conditions/resource-p
703	// olicies).
704	Version int64 `json:"version,omitempty"`
705
706	// ServerResponse contains the HTTP response code and headers from the
707	// server.
708	googleapi.ServerResponse `json:"-"`
709
710	// ForceSendFields is a list of field names (e.g. "AuditConfigs") to
711	// unconditionally include in API requests. By default, fields with
712	// empty values are omitted from API requests. However, any non-pointer,
713	// non-interface field appearing in ForceSendFields will be sent to the
714	// server regardless of whether the field is empty or not. This may be
715	// used to include empty fields in Patch requests.
716	ForceSendFields []string `json:"-"`
717
718	// NullFields is a list of field names (e.g. "AuditConfigs") to include
719	// in API requests with the JSON null value. By default, fields with
720	// empty values are omitted from API requests. However, any field with
721	// an empty value appearing in NullFields will be sent to the server as
722	// null. It is an error if a field in this list has a non-empty value.
723	// This may be used to include null fields in Patch requests.
724	NullFields []string `json:"-"`
725}
726
727func (s *ApigatewayPolicy) MarshalJSON() ([]byte, error) {
728	type NoMethod ApigatewayPolicy
729	raw := NoMethod(*s)
730	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
731}
732
733// ApigatewaySetIamPolicyRequest: Request message for `SetIamPolicy`
734// method.
735type ApigatewaySetIamPolicyRequest struct {
736	// Policy: REQUIRED: The complete policy to be applied to the
737	// `resource`. The size of the policy is limited to a few 10s of KB. An
738	// empty policy is a valid policy but certain Cloud Platform services
739	// (such as Projects) might reject them.
740	Policy *ApigatewayPolicy `json:"policy,omitempty"`
741
742	// UpdateMask: OPTIONAL: A FieldMask specifying which fields of the
743	// policy to modify. Only the fields in the mask will be modified. If no
744	// mask is provided, the following default mask is used: `paths:
745	// "bindings, etag"
746	UpdateMask string `json:"updateMask,omitempty"`
747
748	// ForceSendFields is a list of field names (e.g. "Policy") to
749	// unconditionally include in API requests. By default, fields with
750	// empty values are omitted from API requests. However, any non-pointer,
751	// non-interface field appearing in ForceSendFields will be sent to the
752	// server regardless of whether the field is empty or not. This may be
753	// used to include empty fields in Patch requests.
754	ForceSendFields []string `json:"-"`
755
756	// NullFields is a list of field names (e.g. "Policy") to include in API
757	// requests with the JSON null value. By default, fields with empty
758	// values are omitted from API requests. However, any field with an
759	// empty value appearing in NullFields will be sent to the server as
760	// null. It is an error if a field in this list has a non-empty value.
761	// This may be used to include null fields in Patch requests.
762	NullFields []string `json:"-"`
763}
764
765func (s *ApigatewaySetIamPolicyRequest) MarshalJSON() ([]byte, error) {
766	type NoMethod ApigatewaySetIamPolicyRequest
767	raw := NoMethod(*s)
768	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
769}
770
771// ApigatewayStatus: The `Status` type defines a logical error model
772// that is suitable for different programming environments, including
773// REST APIs and RPC APIs. It is used by
774// [gRPC](https://github.com/grpc). Each `Status` message contains three
775// pieces of data: error code, error message, and error details. You can
776// find out more about this error model and how to work with it in the
777// [API Design Guide](https://cloud.google.com/apis/design/errors).
778type ApigatewayStatus struct {
779	// Code: The status code, which should be an enum value of
780	// google.rpc.Code.
781	Code int64 `json:"code,omitempty"`
782
783	// Details: A list of messages that carry the error details. There is a
784	// common set of message types for APIs to use.
785	Details []googleapi.RawMessage `json:"details,omitempty"`
786
787	// Message: A developer-facing error message, which should be in
788	// English. Any user-facing error message should be localized and sent
789	// in the google.rpc.Status.details field, or localized by the client.
790	Message string `json:"message,omitempty"`
791
792	// ForceSendFields is a list of field names (e.g. "Code") to
793	// unconditionally include in API requests. By default, fields with
794	// empty values are omitted from API requests. However, any non-pointer,
795	// non-interface field appearing in ForceSendFields will be sent to the
796	// server regardless of whether the field is empty or not. This may be
797	// used to include empty fields in Patch requests.
798	ForceSendFields []string `json:"-"`
799
800	// NullFields is a list of field names (e.g. "Code") to include in API
801	// requests with the JSON null value. By default, fields with empty
802	// values are omitted from API requests. However, any field with an
803	// empty value appearing in NullFields will be sent to the server as
804	// null. It is an error if a field in this list has a non-empty value.
805	// This may be used to include null fields in Patch requests.
806	NullFields []string `json:"-"`
807}
808
809func (s *ApigatewayStatus) MarshalJSON() ([]byte, error) {
810	type NoMethod ApigatewayStatus
811	raw := NoMethod(*s)
812	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
813}
814
815// ApigatewayTestIamPermissionsRequest: Request message for
816// `TestIamPermissions` method.
817type ApigatewayTestIamPermissionsRequest struct {
818	// Permissions: The set of permissions to check for the `resource`.
819	// Permissions with wildcards (such as '*' or 'storage.*') are not
820	// allowed. For more information see [IAM
821	// Overview](https://cloud.google.com/iam/docs/overview#permissions).
822	Permissions []string `json:"permissions,omitempty"`
823
824	// ForceSendFields is a list of field names (e.g. "Permissions") to
825	// unconditionally include in API requests. By default, fields with
826	// empty values are omitted from API requests. However, any non-pointer,
827	// non-interface field appearing in ForceSendFields will be sent to the
828	// server regardless of whether the field is empty or not. This may be
829	// used to include empty fields in Patch requests.
830	ForceSendFields []string `json:"-"`
831
832	// NullFields is a list of field names (e.g. "Permissions") to include
833	// in API requests with the JSON null value. By default, fields with
834	// empty values are omitted from API requests. However, any field with
835	// an empty value appearing in NullFields will be sent to the server as
836	// null. It is an error if a field in this list has a non-empty value.
837	// This may be used to include null fields in Patch requests.
838	NullFields []string `json:"-"`
839}
840
841func (s *ApigatewayTestIamPermissionsRequest) MarshalJSON() ([]byte, error) {
842	type NoMethod ApigatewayTestIamPermissionsRequest
843	raw := NoMethod(*s)
844	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
845}
846
847// ApigatewayTestIamPermissionsResponse: Response message for
848// `TestIamPermissions` method.
849type ApigatewayTestIamPermissionsResponse struct {
850	// Permissions: A subset of `TestPermissionsRequest.permissions` that
851	// the caller is allowed.
852	Permissions []string `json:"permissions,omitempty"`
853
854	// ServerResponse contains the HTTP response code and headers from the
855	// server.
856	googleapi.ServerResponse `json:"-"`
857
858	// ForceSendFields is a list of field names (e.g. "Permissions") to
859	// unconditionally include in API requests. By default, fields with
860	// empty values are omitted from API requests. However, any non-pointer,
861	// non-interface field appearing in ForceSendFields will be sent to the
862	// server regardless of whether the field is empty or not. This may be
863	// used to include empty fields in Patch requests.
864	ForceSendFields []string `json:"-"`
865
866	// NullFields is a list of field names (e.g. "Permissions") to include
867	// in API requests with the JSON null value. By default, fields with
868	// empty values are omitted from API requests. However, any field with
869	// an empty value appearing in NullFields will be sent to the server as
870	// null. It is an error if a field in this list has a non-empty value.
871	// This may be used to include null fields in Patch requests.
872	NullFields []string `json:"-"`
873}
874
875func (s *ApigatewayTestIamPermissionsResponse) MarshalJSON() ([]byte, error) {
876	type NoMethod ApigatewayTestIamPermissionsResponse
877	raw := NoMethod(*s)
878	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
879}
880
881// Empty: A generic empty message that you can re-use to avoid defining
882// duplicated empty messages in your APIs. A typical example is to use
883// it as the request or the response type of an API method. For
884// instance: service Foo { rpc Bar(google.protobuf.Empty) returns
885// (google.protobuf.Empty); } The JSON representation for `Empty` is
886// empty JSON object `{}`.
887type Empty struct {
888	// ServerResponse contains the HTTP response code and headers from the
889	// server.
890	googleapi.ServerResponse `json:"-"`
891}
892
893// method id "apigateway.projects.locations.get":
894
895type ProjectsLocationsGetCall struct {
896	s            *Service
897	name         string
898	urlParams_   gensupport.URLParams
899	ifNoneMatch_ string
900	ctx_         context.Context
901	header_      http.Header
902}
903
904// Get: Gets information about a location.
905func (r *ProjectsLocationsService) Get(name string) *ProjectsLocationsGetCall {
906	c := &ProjectsLocationsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
907	c.name = name
908	return c
909}
910
911// Fields allows partial responses to be retrieved. See
912// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
913// for more information.
914func (c *ProjectsLocationsGetCall) Fields(s ...googleapi.Field) *ProjectsLocationsGetCall {
915	c.urlParams_.Set("fields", googleapi.CombineFields(s))
916	return c
917}
918
919// IfNoneMatch sets the optional parameter which makes the operation
920// fail if the object's ETag matches the given value. This is useful for
921// getting updates only after the object has changed since the last
922// request. Use googleapi.IsNotModified to check whether the response
923// error from Do is the result of In-None-Match.
924func (c *ProjectsLocationsGetCall) IfNoneMatch(entityTag string) *ProjectsLocationsGetCall {
925	c.ifNoneMatch_ = entityTag
926	return c
927}
928
929// Context sets the context to be used in this call's Do method. Any
930// pending HTTP request will be aborted if the provided context is
931// canceled.
932func (c *ProjectsLocationsGetCall) Context(ctx context.Context) *ProjectsLocationsGetCall {
933	c.ctx_ = ctx
934	return c
935}
936
937// Header returns an http.Header that can be modified by the caller to
938// add HTTP headers to the request.
939func (c *ProjectsLocationsGetCall) Header() http.Header {
940	if c.header_ == nil {
941		c.header_ = make(http.Header)
942	}
943	return c.header_
944}
945
946func (c *ProjectsLocationsGetCall) doRequest(alt string) (*http.Response, error) {
947	reqHeaders := make(http.Header)
948	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200926")
949	for k, v := range c.header_ {
950		reqHeaders[k] = v
951	}
952	reqHeaders.Set("User-Agent", c.s.userAgent())
953	if c.ifNoneMatch_ != "" {
954		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
955	}
956	var body io.Reader = nil
957	c.urlParams_.Set("alt", alt)
958	c.urlParams_.Set("prettyPrint", "false")
959	urls := googleapi.ResolveRelative(c.s.BasePath, "v1alpha2/{+name}")
960	urls += "?" + c.urlParams_.Encode()
961	req, err := http.NewRequest("GET", urls, body)
962	if err != nil {
963		return nil, err
964	}
965	req.Header = reqHeaders
966	googleapi.Expand(req.URL, map[string]string{
967		"name": c.name,
968	})
969	return gensupport.SendRequest(c.ctx_, c.s.client, req)
970}
971
972// Do executes the "apigateway.projects.locations.get" call.
973// Exactly one of *ApigatewayLocation or error will be non-nil. Any
974// non-2xx status code is an error. Response headers are in either
975// *ApigatewayLocation.ServerResponse.Header or (if a response was
976// returned at all) in error.(*googleapi.Error).Header. Use
977// googleapi.IsNotModified to check whether the returned error was
978// because http.StatusNotModified was returned.
979func (c *ProjectsLocationsGetCall) Do(opts ...googleapi.CallOption) (*ApigatewayLocation, error) {
980	gensupport.SetOptions(c.urlParams_, opts...)
981	res, err := c.doRequest("json")
982	if res != nil && res.StatusCode == http.StatusNotModified {
983		if res.Body != nil {
984			res.Body.Close()
985		}
986		return nil, &googleapi.Error{
987			Code:   res.StatusCode,
988			Header: res.Header,
989		}
990	}
991	if err != nil {
992		return nil, err
993	}
994	defer googleapi.CloseBody(res)
995	if err := googleapi.CheckResponse(res); err != nil {
996		return nil, err
997	}
998	ret := &ApigatewayLocation{
999		ServerResponse: googleapi.ServerResponse{
1000			Header:         res.Header,
1001			HTTPStatusCode: res.StatusCode,
1002		},
1003	}
1004	target := &ret
1005	if err := gensupport.DecodeResponse(target, res); err != nil {
1006		return nil, err
1007	}
1008	return ret, nil
1009	// {
1010	//   "description": "Gets information about a location.",
1011	//   "flatPath": "v1alpha2/projects/{projectsId}/locations/{locationsId}",
1012	//   "httpMethod": "GET",
1013	//   "id": "apigateway.projects.locations.get",
1014	//   "parameterOrder": [
1015	//     "name"
1016	//   ],
1017	//   "parameters": {
1018	//     "name": {
1019	//       "description": "Resource name for the location.",
1020	//       "location": "path",
1021	//       "pattern": "^projects/[^/]+/locations/[^/]+$",
1022	//       "required": true,
1023	//       "type": "string"
1024	//     }
1025	//   },
1026	//   "path": "v1alpha2/{+name}",
1027	//   "response": {
1028	//     "$ref": "ApigatewayLocation"
1029	//   },
1030	//   "scopes": [
1031	//     "https://www.googleapis.com/auth/cloud-platform"
1032	//   ]
1033	// }
1034
1035}
1036
1037// method id "apigateway.projects.locations.list":
1038
1039type ProjectsLocationsListCall struct {
1040	s            *Service
1041	name         string
1042	urlParams_   gensupport.URLParams
1043	ifNoneMatch_ string
1044	ctx_         context.Context
1045	header_      http.Header
1046}
1047
1048// List: Lists information about the supported locations for this
1049// service.
1050func (r *ProjectsLocationsService) List(name string) *ProjectsLocationsListCall {
1051	c := &ProjectsLocationsListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
1052	c.name = name
1053	return c
1054}
1055
1056// Filter sets the optional parameter "filter": The standard list
1057// filter.
1058func (c *ProjectsLocationsListCall) Filter(filter string) *ProjectsLocationsListCall {
1059	c.urlParams_.Set("filter", filter)
1060	return c
1061}
1062
1063// PageSize sets the optional parameter "pageSize": The standard list
1064// page size.
1065func (c *ProjectsLocationsListCall) PageSize(pageSize int64) *ProjectsLocationsListCall {
1066	c.urlParams_.Set("pageSize", fmt.Sprint(pageSize))
1067	return c
1068}
1069
1070// PageToken sets the optional parameter "pageToken": The standard list
1071// page token.
1072func (c *ProjectsLocationsListCall) PageToken(pageToken string) *ProjectsLocationsListCall {
1073	c.urlParams_.Set("pageToken", pageToken)
1074	return c
1075}
1076
1077// Fields allows partial responses to be retrieved. See
1078// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
1079// for more information.
1080func (c *ProjectsLocationsListCall) Fields(s ...googleapi.Field) *ProjectsLocationsListCall {
1081	c.urlParams_.Set("fields", googleapi.CombineFields(s))
1082	return c
1083}
1084
1085// IfNoneMatch sets the optional parameter which makes the operation
1086// fail if the object's ETag matches the given value. This is useful for
1087// getting updates only after the object has changed since the last
1088// request. Use googleapi.IsNotModified to check whether the response
1089// error from Do is the result of In-None-Match.
1090func (c *ProjectsLocationsListCall) IfNoneMatch(entityTag string) *ProjectsLocationsListCall {
1091	c.ifNoneMatch_ = entityTag
1092	return c
1093}
1094
1095// Context sets the context to be used in this call's Do method. Any
1096// pending HTTP request will be aborted if the provided context is
1097// canceled.
1098func (c *ProjectsLocationsListCall) Context(ctx context.Context) *ProjectsLocationsListCall {
1099	c.ctx_ = ctx
1100	return c
1101}
1102
1103// Header returns an http.Header that can be modified by the caller to
1104// add HTTP headers to the request.
1105func (c *ProjectsLocationsListCall) Header() http.Header {
1106	if c.header_ == nil {
1107		c.header_ = make(http.Header)
1108	}
1109	return c.header_
1110}
1111
1112func (c *ProjectsLocationsListCall) doRequest(alt string) (*http.Response, error) {
1113	reqHeaders := make(http.Header)
1114	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200926")
1115	for k, v := range c.header_ {
1116		reqHeaders[k] = v
1117	}
1118	reqHeaders.Set("User-Agent", c.s.userAgent())
1119	if c.ifNoneMatch_ != "" {
1120		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
1121	}
1122	var body io.Reader = nil
1123	c.urlParams_.Set("alt", alt)
1124	c.urlParams_.Set("prettyPrint", "false")
1125	urls := googleapi.ResolveRelative(c.s.BasePath, "v1alpha2/{+name}/locations")
1126	urls += "?" + c.urlParams_.Encode()
1127	req, err := http.NewRequest("GET", urls, body)
1128	if err != nil {
1129		return nil, err
1130	}
1131	req.Header = reqHeaders
1132	googleapi.Expand(req.URL, map[string]string{
1133		"name": c.name,
1134	})
1135	return gensupport.SendRequest(c.ctx_, c.s.client, req)
1136}
1137
1138// Do executes the "apigateway.projects.locations.list" call.
1139// Exactly one of *ApigatewayListLocationsResponse or error will be
1140// non-nil. Any non-2xx status code is an error. Response headers are in
1141// either *ApigatewayListLocationsResponse.ServerResponse.Header or (if
1142// a response was returned at all) in error.(*googleapi.Error).Header.
1143// Use googleapi.IsNotModified to check whether the returned error was
1144// because http.StatusNotModified was returned.
1145func (c *ProjectsLocationsListCall) Do(opts ...googleapi.CallOption) (*ApigatewayListLocationsResponse, error) {
1146	gensupport.SetOptions(c.urlParams_, opts...)
1147	res, err := c.doRequest("json")
1148	if res != nil && res.StatusCode == http.StatusNotModified {
1149		if res.Body != nil {
1150			res.Body.Close()
1151		}
1152		return nil, &googleapi.Error{
1153			Code:   res.StatusCode,
1154			Header: res.Header,
1155		}
1156	}
1157	if err != nil {
1158		return nil, err
1159	}
1160	defer googleapi.CloseBody(res)
1161	if err := googleapi.CheckResponse(res); err != nil {
1162		return nil, err
1163	}
1164	ret := &ApigatewayListLocationsResponse{
1165		ServerResponse: googleapi.ServerResponse{
1166			Header:         res.Header,
1167			HTTPStatusCode: res.StatusCode,
1168		},
1169	}
1170	target := &ret
1171	if err := gensupport.DecodeResponse(target, res); err != nil {
1172		return nil, err
1173	}
1174	return ret, nil
1175	// {
1176	//   "description": "Lists information about the supported locations for this service.",
1177	//   "flatPath": "v1alpha2/projects/{projectsId}/locations",
1178	//   "httpMethod": "GET",
1179	//   "id": "apigateway.projects.locations.list",
1180	//   "parameterOrder": [
1181	//     "name"
1182	//   ],
1183	//   "parameters": {
1184	//     "filter": {
1185	//       "description": "The standard list filter.",
1186	//       "location": "query",
1187	//       "type": "string"
1188	//     },
1189	//     "name": {
1190	//       "description": "The resource that owns the locations collection, if applicable.",
1191	//       "location": "path",
1192	//       "pattern": "^projects/[^/]+$",
1193	//       "required": true,
1194	//       "type": "string"
1195	//     },
1196	//     "pageSize": {
1197	//       "description": "The standard list page size.",
1198	//       "format": "int32",
1199	//       "location": "query",
1200	//       "type": "integer"
1201	//     },
1202	//     "pageToken": {
1203	//       "description": "The standard list page token.",
1204	//       "location": "query",
1205	//       "type": "string"
1206	//     }
1207	//   },
1208	//   "path": "v1alpha2/{+name}/locations",
1209	//   "response": {
1210	//     "$ref": "ApigatewayListLocationsResponse"
1211	//   },
1212	//   "scopes": [
1213	//     "https://www.googleapis.com/auth/cloud-platform"
1214	//   ]
1215	// }
1216
1217}
1218
1219// Pages invokes f for each page of results.
1220// A non-nil error returned from f will halt the iteration.
1221// The provided context supersedes any context provided to the Context method.
1222func (c *ProjectsLocationsListCall) Pages(ctx context.Context, f func(*ApigatewayListLocationsResponse) error) error {
1223	c.ctx_ = ctx
1224	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
1225	for {
1226		x, err := c.Do()
1227		if err != nil {
1228			return err
1229		}
1230		if err := f(x); err != nil {
1231			return err
1232		}
1233		if x.NextPageToken == "" {
1234			return nil
1235		}
1236		c.PageToken(x.NextPageToken)
1237	}
1238}
1239
1240// method id "apigateway.projects.locations.apis.getIamPolicy":
1241
1242type ProjectsLocationsApisGetIamPolicyCall struct {
1243	s            *Service
1244	resource     string
1245	urlParams_   gensupport.URLParams
1246	ifNoneMatch_ string
1247	ctx_         context.Context
1248	header_      http.Header
1249}
1250
1251// GetIamPolicy: Gets the access control policy for a resource. Returns
1252// an empty policy if the resource exists and does not have a policy
1253// set.
1254func (r *ProjectsLocationsApisService) GetIamPolicy(resource string) *ProjectsLocationsApisGetIamPolicyCall {
1255	c := &ProjectsLocationsApisGetIamPolicyCall{s: r.s, urlParams_: make(gensupport.URLParams)}
1256	c.resource = resource
1257	return c
1258}
1259
1260// OptionsRequestedPolicyVersion sets the optional parameter
1261// "options.requestedPolicyVersion": The policy format version to be
1262// returned. Valid values are 0, 1, and 3. Requests specifying an
1263// invalid value will be rejected. Requests for policies with any
1264// conditional bindings must specify version 3. Policies without any
1265// conditional bindings may specify any valid value or leave the field
1266// unset. To learn which resources support conditions in their IAM
1267// policies, see the [IAM
1268// documentation](https://cloud.google.com/iam/help/conditions/resource-p
1269// olicies).
1270func (c *ProjectsLocationsApisGetIamPolicyCall) OptionsRequestedPolicyVersion(optionsRequestedPolicyVersion int64) *ProjectsLocationsApisGetIamPolicyCall {
1271	c.urlParams_.Set("options.requestedPolicyVersion", fmt.Sprint(optionsRequestedPolicyVersion))
1272	return c
1273}
1274
1275// Fields allows partial responses to be retrieved. See
1276// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
1277// for more information.
1278func (c *ProjectsLocationsApisGetIamPolicyCall) Fields(s ...googleapi.Field) *ProjectsLocationsApisGetIamPolicyCall {
1279	c.urlParams_.Set("fields", googleapi.CombineFields(s))
1280	return c
1281}
1282
1283// IfNoneMatch sets the optional parameter which makes the operation
1284// fail if the object's ETag matches the given value. This is useful for
1285// getting updates only after the object has changed since the last
1286// request. Use googleapi.IsNotModified to check whether the response
1287// error from Do is the result of In-None-Match.
1288func (c *ProjectsLocationsApisGetIamPolicyCall) IfNoneMatch(entityTag string) *ProjectsLocationsApisGetIamPolicyCall {
1289	c.ifNoneMatch_ = entityTag
1290	return c
1291}
1292
1293// Context sets the context to be used in this call's Do method. Any
1294// pending HTTP request will be aborted if the provided context is
1295// canceled.
1296func (c *ProjectsLocationsApisGetIamPolicyCall) Context(ctx context.Context) *ProjectsLocationsApisGetIamPolicyCall {
1297	c.ctx_ = ctx
1298	return c
1299}
1300
1301// Header returns an http.Header that can be modified by the caller to
1302// add HTTP headers to the request.
1303func (c *ProjectsLocationsApisGetIamPolicyCall) Header() http.Header {
1304	if c.header_ == nil {
1305		c.header_ = make(http.Header)
1306	}
1307	return c.header_
1308}
1309
1310func (c *ProjectsLocationsApisGetIamPolicyCall) doRequest(alt string) (*http.Response, error) {
1311	reqHeaders := make(http.Header)
1312	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200926")
1313	for k, v := range c.header_ {
1314		reqHeaders[k] = v
1315	}
1316	reqHeaders.Set("User-Agent", c.s.userAgent())
1317	if c.ifNoneMatch_ != "" {
1318		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
1319	}
1320	var body io.Reader = nil
1321	c.urlParams_.Set("alt", alt)
1322	c.urlParams_.Set("prettyPrint", "false")
1323	urls := googleapi.ResolveRelative(c.s.BasePath, "v1alpha2/{+resource}:getIamPolicy")
1324	urls += "?" + c.urlParams_.Encode()
1325	req, err := http.NewRequest("GET", urls, body)
1326	if err != nil {
1327		return nil, err
1328	}
1329	req.Header = reqHeaders
1330	googleapi.Expand(req.URL, map[string]string{
1331		"resource": c.resource,
1332	})
1333	return gensupport.SendRequest(c.ctx_, c.s.client, req)
1334}
1335
1336// Do executes the "apigateway.projects.locations.apis.getIamPolicy" call.
1337// Exactly one of *ApigatewayPolicy or error will be non-nil. Any
1338// non-2xx status code is an error. Response headers are in either
1339// *ApigatewayPolicy.ServerResponse.Header or (if a response was
1340// returned at all) in error.(*googleapi.Error).Header. Use
1341// googleapi.IsNotModified to check whether the returned error was
1342// because http.StatusNotModified was returned.
1343func (c *ProjectsLocationsApisGetIamPolicyCall) Do(opts ...googleapi.CallOption) (*ApigatewayPolicy, error) {
1344	gensupport.SetOptions(c.urlParams_, opts...)
1345	res, err := c.doRequest("json")
1346	if res != nil && res.StatusCode == http.StatusNotModified {
1347		if res.Body != nil {
1348			res.Body.Close()
1349		}
1350		return nil, &googleapi.Error{
1351			Code:   res.StatusCode,
1352			Header: res.Header,
1353		}
1354	}
1355	if err != nil {
1356		return nil, err
1357	}
1358	defer googleapi.CloseBody(res)
1359	if err := googleapi.CheckResponse(res); err != nil {
1360		return nil, err
1361	}
1362	ret := &ApigatewayPolicy{
1363		ServerResponse: googleapi.ServerResponse{
1364			Header:         res.Header,
1365			HTTPStatusCode: res.StatusCode,
1366		},
1367	}
1368	target := &ret
1369	if err := gensupport.DecodeResponse(target, res); err != nil {
1370		return nil, err
1371	}
1372	return ret, nil
1373	// {
1374	//   "description": "Gets the access control policy for a resource. Returns an empty policy if the resource exists and does not have a policy set.",
1375	//   "flatPath": "v1alpha2/projects/{projectsId}/locations/{locationsId}/apis/{apisId}:getIamPolicy",
1376	//   "httpMethod": "GET",
1377	//   "id": "apigateway.projects.locations.apis.getIamPolicy",
1378	//   "parameterOrder": [
1379	//     "resource"
1380	//   ],
1381	//   "parameters": {
1382	//     "options.requestedPolicyVersion": {
1383	//       "description": "Optional. The policy format version to be returned. Valid values are 0, 1, and 3. Requests specifying an invalid value will be rejected. Requests for policies with any conditional bindings must specify version 3. Policies without any conditional bindings may specify any valid value or leave the field unset. To learn which resources support conditions in their IAM policies, see the [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-policies).",
1384	//       "format": "int32",
1385	//       "location": "query",
1386	//       "type": "integer"
1387	//     },
1388	//     "resource": {
1389	//       "description": "REQUIRED: The resource for which the policy is being requested. See the operation documentation for the appropriate value for this field.",
1390	//       "location": "path",
1391	//       "pattern": "^projects/[^/]+/locations/[^/]+/apis/[^/]+$",
1392	//       "required": true,
1393	//       "type": "string"
1394	//     }
1395	//   },
1396	//   "path": "v1alpha2/{+resource}:getIamPolicy",
1397	//   "response": {
1398	//     "$ref": "ApigatewayPolicy"
1399	//   },
1400	//   "scopes": [
1401	//     "https://www.googleapis.com/auth/cloud-platform"
1402	//   ]
1403	// }
1404
1405}
1406
1407// method id "apigateway.projects.locations.apis.setIamPolicy":
1408
1409type ProjectsLocationsApisSetIamPolicyCall struct {
1410	s                             *Service
1411	resource                      string
1412	apigatewaysetiampolicyrequest *ApigatewaySetIamPolicyRequest
1413	urlParams_                    gensupport.URLParams
1414	ctx_                          context.Context
1415	header_                       http.Header
1416}
1417
1418// SetIamPolicy: Sets the access control policy on the specified
1419// resource. Replaces any existing policy. Can return `NOT_FOUND`,
1420// `INVALID_ARGUMENT`, and `PERMISSION_DENIED` errors.
1421func (r *ProjectsLocationsApisService) SetIamPolicy(resource string, apigatewaysetiampolicyrequest *ApigatewaySetIamPolicyRequest) *ProjectsLocationsApisSetIamPolicyCall {
1422	c := &ProjectsLocationsApisSetIamPolicyCall{s: r.s, urlParams_: make(gensupport.URLParams)}
1423	c.resource = resource
1424	c.apigatewaysetiampolicyrequest = apigatewaysetiampolicyrequest
1425	return c
1426}
1427
1428// Fields allows partial responses to be retrieved. See
1429// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
1430// for more information.
1431func (c *ProjectsLocationsApisSetIamPolicyCall) Fields(s ...googleapi.Field) *ProjectsLocationsApisSetIamPolicyCall {
1432	c.urlParams_.Set("fields", googleapi.CombineFields(s))
1433	return c
1434}
1435
1436// Context sets the context to be used in this call's Do method. Any
1437// pending HTTP request will be aborted if the provided context is
1438// canceled.
1439func (c *ProjectsLocationsApisSetIamPolicyCall) Context(ctx context.Context) *ProjectsLocationsApisSetIamPolicyCall {
1440	c.ctx_ = ctx
1441	return c
1442}
1443
1444// Header returns an http.Header that can be modified by the caller to
1445// add HTTP headers to the request.
1446func (c *ProjectsLocationsApisSetIamPolicyCall) Header() http.Header {
1447	if c.header_ == nil {
1448		c.header_ = make(http.Header)
1449	}
1450	return c.header_
1451}
1452
1453func (c *ProjectsLocationsApisSetIamPolicyCall) doRequest(alt string) (*http.Response, error) {
1454	reqHeaders := make(http.Header)
1455	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200926")
1456	for k, v := range c.header_ {
1457		reqHeaders[k] = v
1458	}
1459	reqHeaders.Set("User-Agent", c.s.userAgent())
1460	var body io.Reader = nil
1461	body, err := googleapi.WithoutDataWrapper.JSONReader(c.apigatewaysetiampolicyrequest)
1462	if err != nil {
1463		return nil, err
1464	}
1465	reqHeaders.Set("Content-Type", "application/json")
1466	c.urlParams_.Set("alt", alt)
1467	c.urlParams_.Set("prettyPrint", "false")
1468	urls := googleapi.ResolveRelative(c.s.BasePath, "v1alpha2/{+resource}:setIamPolicy")
1469	urls += "?" + c.urlParams_.Encode()
1470	req, err := http.NewRequest("POST", urls, body)
1471	if err != nil {
1472		return nil, err
1473	}
1474	req.Header = reqHeaders
1475	googleapi.Expand(req.URL, map[string]string{
1476		"resource": c.resource,
1477	})
1478	return gensupport.SendRequest(c.ctx_, c.s.client, req)
1479}
1480
1481// Do executes the "apigateway.projects.locations.apis.setIamPolicy" call.
1482// Exactly one of *ApigatewayPolicy or error will be non-nil. Any
1483// non-2xx status code is an error. Response headers are in either
1484// *ApigatewayPolicy.ServerResponse.Header or (if a response was
1485// returned at all) in error.(*googleapi.Error).Header. Use
1486// googleapi.IsNotModified to check whether the returned error was
1487// because http.StatusNotModified was returned.
1488func (c *ProjectsLocationsApisSetIamPolicyCall) Do(opts ...googleapi.CallOption) (*ApigatewayPolicy, error) {
1489	gensupport.SetOptions(c.urlParams_, opts...)
1490	res, err := c.doRequest("json")
1491	if res != nil && res.StatusCode == http.StatusNotModified {
1492		if res.Body != nil {
1493			res.Body.Close()
1494		}
1495		return nil, &googleapi.Error{
1496			Code:   res.StatusCode,
1497			Header: res.Header,
1498		}
1499	}
1500	if err != nil {
1501		return nil, err
1502	}
1503	defer googleapi.CloseBody(res)
1504	if err := googleapi.CheckResponse(res); err != nil {
1505		return nil, err
1506	}
1507	ret := &ApigatewayPolicy{
1508		ServerResponse: googleapi.ServerResponse{
1509			Header:         res.Header,
1510			HTTPStatusCode: res.StatusCode,
1511		},
1512	}
1513	target := &ret
1514	if err := gensupport.DecodeResponse(target, res); err != nil {
1515		return nil, err
1516	}
1517	return ret, nil
1518	// {
1519	//   "description": "Sets the access control policy on the specified resource. Replaces any existing policy. Can return `NOT_FOUND`, `INVALID_ARGUMENT`, and `PERMISSION_DENIED` errors.",
1520	//   "flatPath": "v1alpha2/projects/{projectsId}/locations/{locationsId}/apis/{apisId}:setIamPolicy",
1521	//   "httpMethod": "POST",
1522	//   "id": "apigateway.projects.locations.apis.setIamPolicy",
1523	//   "parameterOrder": [
1524	//     "resource"
1525	//   ],
1526	//   "parameters": {
1527	//     "resource": {
1528	//       "description": "REQUIRED: The resource for which the policy is being specified. See the operation documentation for the appropriate value for this field.",
1529	//       "location": "path",
1530	//       "pattern": "^projects/[^/]+/locations/[^/]+/apis/[^/]+$",
1531	//       "required": true,
1532	//       "type": "string"
1533	//     }
1534	//   },
1535	//   "path": "v1alpha2/{+resource}:setIamPolicy",
1536	//   "request": {
1537	//     "$ref": "ApigatewaySetIamPolicyRequest"
1538	//   },
1539	//   "response": {
1540	//     "$ref": "ApigatewayPolicy"
1541	//   },
1542	//   "scopes": [
1543	//     "https://www.googleapis.com/auth/cloud-platform"
1544	//   ]
1545	// }
1546
1547}
1548
1549// method id "apigateway.projects.locations.apis.testIamPermissions":
1550
1551type ProjectsLocationsApisTestIamPermissionsCall struct {
1552	s                                   *Service
1553	resource                            string
1554	apigatewaytestiampermissionsrequest *ApigatewayTestIamPermissionsRequest
1555	urlParams_                          gensupport.URLParams
1556	ctx_                                context.Context
1557	header_                             http.Header
1558}
1559
1560// TestIamPermissions: Returns permissions that a caller has on the
1561// specified resource. If the resource does not exist, this will return
1562// an empty set of permissions, not a `NOT_FOUND` error. Note: This
1563// operation is designed to be used for building permission-aware UIs
1564// and command-line tools, not for authorization checking. This
1565// operation may "fail open" without warning.
1566func (r *ProjectsLocationsApisService) TestIamPermissions(resource string, apigatewaytestiampermissionsrequest *ApigatewayTestIamPermissionsRequest) *ProjectsLocationsApisTestIamPermissionsCall {
1567	c := &ProjectsLocationsApisTestIamPermissionsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
1568	c.resource = resource
1569	c.apigatewaytestiampermissionsrequest = apigatewaytestiampermissionsrequest
1570	return c
1571}
1572
1573// Fields allows partial responses to be retrieved. See
1574// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
1575// for more information.
1576func (c *ProjectsLocationsApisTestIamPermissionsCall) Fields(s ...googleapi.Field) *ProjectsLocationsApisTestIamPermissionsCall {
1577	c.urlParams_.Set("fields", googleapi.CombineFields(s))
1578	return c
1579}
1580
1581// Context sets the context to be used in this call's Do method. Any
1582// pending HTTP request will be aborted if the provided context is
1583// canceled.
1584func (c *ProjectsLocationsApisTestIamPermissionsCall) Context(ctx context.Context) *ProjectsLocationsApisTestIamPermissionsCall {
1585	c.ctx_ = ctx
1586	return c
1587}
1588
1589// Header returns an http.Header that can be modified by the caller to
1590// add HTTP headers to the request.
1591func (c *ProjectsLocationsApisTestIamPermissionsCall) Header() http.Header {
1592	if c.header_ == nil {
1593		c.header_ = make(http.Header)
1594	}
1595	return c.header_
1596}
1597
1598func (c *ProjectsLocationsApisTestIamPermissionsCall) doRequest(alt string) (*http.Response, error) {
1599	reqHeaders := make(http.Header)
1600	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200926")
1601	for k, v := range c.header_ {
1602		reqHeaders[k] = v
1603	}
1604	reqHeaders.Set("User-Agent", c.s.userAgent())
1605	var body io.Reader = nil
1606	body, err := googleapi.WithoutDataWrapper.JSONReader(c.apigatewaytestiampermissionsrequest)
1607	if err != nil {
1608		return nil, err
1609	}
1610	reqHeaders.Set("Content-Type", "application/json")
1611	c.urlParams_.Set("alt", alt)
1612	c.urlParams_.Set("prettyPrint", "false")
1613	urls := googleapi.ResolveRelative(c.s.BasePath, "v1alpha2/{+resource}:testIamPermissions")
1614	urls += "?" + c.urlParams_.Encode()
1615	req, err := http.NewRequest("POST", urls, body)
1616	if err != nil {
1617		return nil, err
1618	}
1619	req.Header = reqHeaders
1620	googleapi.Expand(req.URL, map[string]string{
1621		"resource": c.resource,
1622	})
1623	return gensupport.SendRequest(c.ctx_, c.s.client, req)
1624}
1625
1626// Do executes the "apigateway.projects.locations.apis.testIamPermissions" call.
1627// Exactly one of *ApigatewayTestIamPermissionsResponse or error will be
1628// non-nil. Any non-2xx status code is an error. Response headers are in
1629// either *ApigatewayTestIamPermissionsResponse.ServerResponse.Header or
1630// (if a response was returned at all) in
1631// error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check
1632// whether the returned error was because http.StatusNotModified was
1633// returned.
1634func (c *ProjectsLocationsApisTestIamPermissionsCall) Do(opts ...googleapi.CallOption) (*ApigatewayTestIamPermissionsResponse, error) {
1635	gensupport.SetOptions(c.urlParams_, opts...)
1636	res, err := c.doRequest("json")
1637	if res != nil && res.StatusCode == http.StatusNotModified {
1638		if res.Body != nil {
1639			res.Body.Close()
1640		}
1641		return nil, &googleapi.Error{
1642			Code:   res.StatusCode,
1643			Header: res.Header,
1644		}
1645	}
1646	if err != nil {
1647		return nil, err
1648	}
1649	defer googleapi.CloseBody(res)
1650	if err := googleapi.CheckResponse(res); err != nil {
1651		return nil, err
1652	}
1653	ret := &ApigatewayTestIamPermissionsResponse{
1654		ServerResponse: googleapi.ServerResponse{
1655			Header:         res.Header,
1656			HTTPStatusCode: res.StatusCode,
1657		},
1658	}
1659	target := &ret
1660	if err := gensupport.DecodeResponse(target, res); err != nil {
1661		return nil, err
1662	}
1663	return ret, nil
1664	// {
1665	//   "description": "Returns permissions that a caller has on the specified resource. If the resource does not exist, this will return an empty set of permissions, not a `NOT_FOUND` error. Note: This operation is designed to be used for building permission-aware UIs and command-line tools, not for authorization checking. This operation may \"fail open\" without warning.",
1666	//   "flatPath": "v1alpha2/projects/{projectsId}/locations/{locationsId}/apis/{apisId}:testIamPermissions",
1667	//   "httpMethod": "POST",
1668	//   "id": "apigateway.projects.locations.apis.testIamPermissions",
1669	//   "parameterOrder": [
1670	//     "resource"
1671	//   ],
1672	//   "parameters": {
1673	//     "resource": {
1674	//       "description": "REQUIRED: The resource for which the policy detail is being requested. See the operation documentation for the appropriate value for this field.",
1675	//       "location": "path",
1676	//       "pattern": "^projects/[^/]+/locations/[^/]+/apis/[^/]+$",
1677	//       "required": true,
1678	//       "type": "string"
1679	//     }
1680	//   },
1681	//   "path": "v1alpha2/{+resource}:testIamPermissions",
1682	//   "request": {
1683	//     "$ref": "ApigatewayTestIamPermissionsRequest"
1684	//   },
1685	//   "response": {
1686	//     "$ref": "ApigatewayTestIamPermissionsResponse"
1687	//   },
1688	//   "scopes": [
1689	//     "https://www.googleapis.com/auth/cloud-platform"
1690	//   ]
1691	// }
1692
1693}
1694
1695// method id "apigateway.projects.locations.apis.configs.getIamPolicy":
1696
1697type ProjectsLocationsApisConfigsGetIamPolicyCall struct {
1698	s            *Service
1699	resource     string
1700	urlParams_   gensupport.URLParams
1701	ifNoneMatch_ string
1702	ctx_         context.Context
1703	header_      http.Header
1704}
1705
1706// GetIamPolicy: Gets the access control policy for a resource. Returns
1707// an empty policy if the resource exists and does not have a policy
1708// set.
1709func (r *ProjectsLocationsApisConfigsService) GetIamPolicy(resource string) *ProjectsLocationsApisConfigsGetIamPolicyCall {
1710	c := &ProjectsLocationsApisConfigsGetIamPolicyCall{s: r.s, urlParams_: make(gensupport.URLParams)}
1711	c.resource = resource
1712	return c
1713}
1714
1715// OptionsRequestedPolicyVersion sets the optional parameter
1716// "options.requestedPolicyVersion": The policy format version to be
1717// returned. Valid values are 0, 1, and 3. Requests specifying an
1718// invalid value will be rejected. Requests for policies with any
1719// conditional bindings must specify version 3. Policies without any
1720// conditional bindings may specify any valid value or leave the field
1721// unset. To learn which resources support conditions in their IAM
1722// policies, see the [IAM
1723// documentation](https://cloud.google.com/iam/help/conditions/resource-p
1724// olicies).
1725func (c *ProjectsLocationsApisConfigsGetIamPolicyCall) OptionsRequestedPolicyVersion(optionsRequestedPolicyVersion int64) *ProjectsLocationsApisConfigsGetIamPolicyCall {
1726	c.urlParams_.Set("options.requestedPolicyVersion", fmt.Sprint(optionsRequestedPolicyVersion))
1727	return c
1728}
1729
1730// Fields allows partial responses to be retrieved. See
1731// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
1732// for more information.
1733func (c *ProjectsLocationsApisConfigsGetIamPolicyCall) Fields(s ...googleapi.Field) *ProjectsLocationsApisConfigsGetIamPolicyCall {
1734	c.urlParams_.Set("fields", googleapi.CombineFields(s))
1735	return c
1736}
1737
1738// IfNoneMatch sets the optional parameter which makes the operation
1739// fail if the object's ETag matches the given value. This is useful for
1740// getting updates only after the object has changed since the last
1741// request. Use googleapi.IsNotModified to check whether the response
1742// error from Do is the result of In-None-Match.
1743func (c *ProjectsLocationsApisConfigsGetIamPolicyCall) IfNoneMatch(entityTag string) *ProjectsLocationsApisConfigsGetIamPolicyCall {
1744	c.ifNoneMatch_ = entityTag
1745	return c
1746}
1747
1748// Context sets the context to be used in this call's Do method. Any
1749// pending HTTP request will be aborted if the provided context is
1750// canceled.
1751func (c *ProjectsLocationsApisConfigsGetIamPolicyCall) Context(ctx context.Context) *ProjectsLocationsApisConfigsGetIamPolicyCall {
1752	c.ctx_ = ctx
1753	return c
1754}
1755
1756// Header returns an http.Header that can be modified by the caller to
1757// add HTTP headers to the request.
1758func (c *ProjectsLocationsApisConfigsGetIamPolicyCall) Header() http.Header {
1759	if c.header_ == nil {
1760		c.header_ = make(http.Header)
1761	}
1762	return c.header_
1763}
1764
1765func (c *ProjectsLocationsApisConfigsGetIamPolicyCall) doRequest(alt string) (*http.Response, error) {
1766	reqHeaders := make(http.Header)
1767	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200926")
1768	for k, v := range c.header_ {
1769		reqHeaders[k] = v
1770	}
1771	reqHeaders.Set("User-Agent", c.s.userAgent())
1772	if c.ifNoneMatch_ != "" {
1773		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
1774	}
1775	var body io.Reader = nil
1776	c.urlParams_.Set("alt", alt)
1777	c.urlParams_.Set("prettyPrint", "false")
1778	urls := googleapi.ResolveRelative(c.s.BasePath, "v1alpha2/{+resource}:getIamPolicy")
1779	urls += "?" + c.urlParams_.Encode()
1780	req, err := http.NewRequest("GET", urls, body)
1781	if err != nil {
1782		return nil, err
1783	}
1784	req.Header = reqHeaders
1785	googleapi.Expand(req.URL, map[string]string{
1786		"resource": c.resource,
1787	})
1788	return gensupport.SendRequest(c.ctx_, c.s.client, req)
1789}
1790
1791// Do executes the "apigateway.projects.locations.apis.configs.getIamPolicy" call.
1792// Exactly one of *ApigatewayPolicy or error will be non-nil. Any
1793// non-2xx status code is an error. Response headers are in either
1794// *ApigatewayPolicy.ServerResponse.Header or (if a response was
1795// returned at all) in error.(*googleapi.Error).Header. Use
1796// googleapi.IsNotModified to check whether the returned error was
1797// because http.StatusNotModified was returned.
1798func (c *ProjectsLocationsApisConfigsGetIamPolicyCall) Do(opts ...googleapi.CallOption) (*ApigatewayPolicy, error) {
1799	gensupport.SetOptions(c.urlParams_, opts...)
1800	res, err := c.doRequest("json")
1801	if res != nil && res.StatusCode == http.StatusNotModified {
1802		if res.Body != nil {
1803			res.Body.Close()
1804		}
1805		return nil, &googleapi.Error{
1806			Code:   res.StatusCode,
1807			Header: res.Header,
1808		}
1809	}
1810	if err != nil {
1811		return nil, err
1812	}
1813	defer googleapi.CloseBody(res)
1814	if err := googleapi.CheckResponse(res); err != nil {
1815		return nil, err
1816	}
1817	ret := &ApigatewayPolicy{
1818		ServerResponse: googleapi.ServerResponse{
1819			Header:         res.Header,
1820			HTTPStatusCode: res.StatusCode,
1821		},
1822	}
1823	target := &ret
1824	if err := gensupport.DecodeResponse(target, res); err != nil {
1825		return nil, err
1826	}
1827	return ret, nil
1828	// {
1829	//   "description": "Gets the access control policy for a resource. Returns an empty policy if the resource exists and does not have a policy set.",
1830	//   "flatPath": "v1alpha2/projects/{projectsId}/locations/{locationsId}/apis/{apisId}/configs/{configsId}:getIamPolicy",
1831	//   "httpMethod": "GET",
1832	//   "id": "apigateway.projects.locations.apis.configs.getIamPolicy",
1833	//   "parameterOrder": [
1834	//     "resource"
1835	//   ],
1836	//   "parameters": {
1837	//     "options.requestedPolicyVersion": {
1838	//       "description": "Optional. The policy format version to be returned. Valid values are 0, 1, and 3. Requests specifying an invalid value will be rejected. Requests for policies with any conditional bindings must specify version 3. Policies without any conditional bindings may specify any valid value or leave the field unset. To learn which resources support conditions in their IAM policies, see the [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-policies).",
1839	//       "format": "int32",
1840	//       "location": "query",
1841	//       "type": "integer"
1842	//     },
1843	//     "resource": {
1844	//       "description": "REQUIRED: The resource for which the policy is being requested. See the operation documentation for the appropriate value for this field.",
1845	//       "location": "path",
1846	//       "pattern": "^projects/[^/]+/locations/[^/]+/apis/[^/]+/configs/[^/]+$",
1847	//       "required": true,
1848	//       "type": "string"
1849	//     }
1850	//   },
1851	//   "path": "v1alpha2/{+resource}:getIamPolicy",
1852	//   "response": {
1853	//     "$ref": "ApigatewayPolicy"
1854	//   },
1855	//   "scopes": [
1856	//     "https://www.googleapis.com/auth/cloud-platform"
1857	//   ]
1858	// }
1859
1860}
1861
1862// method id "apigateway.projects.locations.apis.configs.setIamPolicy":
1863
1864type ProjectsLocationsApisConfigsSetIamPolicyCall struct {
1865	s                             *Service
1866	resource                      string
1867	apigatewaysetiampolicyrequest *ApigatewaySetIamPolicyRequest
1868	urlParams_                    gensupport.URLParams
1869	ctx_                          context.Context
1870	header_                       http.Header
1871}
1872
1873// SetIamPolicy: Sets the access control policy on the specified
1874// resource. Replaces any existing policy. Can return `NOT_FOUND`,
1875// `INVALID_ARGUMENT`, and `PERMISSION_DENIED` errors.
1876func (r *ProjectsLocationsApisConfigsService) SetIamPolicy(resource string, apigatewaysetiampolicyrequest *ApigatewaySetIamPolicyRequest) *ProjectsLocationsApisConfigsSetIamPolicyCall {
1877	c := &ProjectsLocationsApisConfigsSetIamPolicyCall{s: r.s, urlParams_: make(gensupport.URLParams)}
1878	c.resource = resource
1879	c.apigatewaysetiampolicyrequest = apigatewaysetiampolicyrequest
1880	return c
1881}
1882
1883// Fields allows partial responses to be retrieved. See
1884// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
1885// for more information.
1886func (c *ProjectsLocationsApisConfigsSetIamPolicyCall) Fields(s ...googleapi.Field) *ProjectsLocationsApisConfigsSetIamPolicyCall {
1887	c.urlParams_.Set("fields", googleapi.CombineFields(s))
1888	return c
1889}
1890
1891// Context sets the context to be used in this call's Do method. Any
1892// pending HTTP request will be aborted if the provided context is
1893// canceled.
1894func (c *ProjectsLocationsApisConfigsSetIamPolicyCall) Context(ctx context.Context) *ProjectsLocationsApisConfigsSetIamPolicyCall {
1895	c.ctx_ = ctx
1896	return c
1897}
1898
1899// Header returns an http.Header that can be modified by the caller to
1900// add HTTP headers to the request.
1901func (c *ProjectsLocationsApisConfigsSetIamPolicyCall) Header() http.Header {
1902	if c.header_ == nil {
1903		c.header_ = make(http.Header)
1904	}
1905	return c.header_
1906}
1907
1908func (c *ProjectsLocationsApisConfigsSetIamPolicyCall) doRequest(alt string) (*http.Response, error) {
1909	reqHeaders := make(http.Header)
1910	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200926")
1911	for k, v := range c.header_ {
1912		reqHeaders[k] = v
1913	}
1914	reqHeaders.Set("User-Agent", c.s.userAgent())
1915	var body io.Reader = nil
1916	body, err := googleapi.WithoutDataWrapper.JSONReader(c.apigatewaysetiampolicyrequest)
1917	if err != nil {
1918		return nil, err
1919	}
1920	reqHeaders.Set("Content-Type", "application/json")
1921	c.urlParams_.Set("alt", alt)
1922	c.urlParams_.Set("prettyPrint", "false")
1923	urls := googleapi.ResolveRelative(c.s.BasePath, "v1alpha2/{+resource}:setIamPolicy")
1924	urls += "?" + c.urlParams_.Encode()
1925	req, err := http.NewRequest("POST", urls, body)
1926	if err != nil {
1927		return nil, err
1928	}
1929	req.Header = reqHeaders
1930	googleapi.Expand(req.URL, map[string]string{
1931		"resource": c.resource,
1932	})
1933	return gensupport.SendRequest(c.ctx_, c.s.client, req)
1934}
1935
1936// Do executes the "apigateway.projects.locations.apis.configs.setIamPolicy" call.
1937// Exactly one of *ApigatewayPolicy or error will be non-nil. Any
1938// non-2xx status code is an error. Response headers are in either
1939// *ApigatewayPolicy.ServerResponse.Header or (if a response was
1940// returned at all) in error.(*googleapi.Error).Header. Use
1941// googleapi.IsNotModified to check whether the returned error was
1942// because http.StatusNotModified was returned.
1943func (c *ProjectsLocationsApisConfigsSetIamPolicyCall) Do(opts ...googleapi.CallOption) (*ApigatewayPolicy, error) {
1944	gensupport.SetOptions(c.urlParams_, opts...)
1945	res, err := c.doRequest("json")
1946	if res != nil && res.StatusCode == http.StatusNotModified {
1947		if res.Body != nil {
1948			res.Body.Close()
1949		}
1950		return nil, &googleapi.Error{
1951			Code:   res.StatusCode,
1952			Header: res.Header,
1953		}
1954	}
1955	if err != nil {
1956		return nil, err
1957	}
1958	defer googleapi.CloseBody(res)
1959	if err := googleapi.CheckResponse(res); err != nil {
1960		return nil, err
1961	}
1962	ret := &ApigatewayPolicy{
1963		ServerResponse: googleapi.ServerResponse{
1964			Header:         res.Header,
1965			HTTPStatusCode: res.StatusCode,
1966		},
1967	}
1968	target := &ret
1969	if err := gensupport.DecodeResponse(target, res); err != nil {
1970		return nil, err
1971	}
1972	return ret, nil
1973	// {
1974	//   "description": "Sets the access control policy on the specified resource. Replaces any existing policy. Can return `NOT_FOUND`, `INVALID_ARGUMENT`, and `PERMISSION_DENIED` errors.",
1975	//   "flatPath": "v1alpha2/projects/{projectsId}/locations/{locationsId}/apis/{apisId}/configs/{configsId}:setIamPolicy",
1976	//   "httpMethod": "POST",
1977	//   "id": "apigateway.projects.locations.apis.configs.setIamPolicy",
1978	//   "parameterOrder": [
1979	//     "resource"
1980	//   ],
1981	//   "parameters": {
1982	//     "resource": {
1983	//       "description": "REQUIRED: The resource for which the policy is being specified. See the operation documentation for the appropriate value for this field.",
1984	//       "location": "path",
1985	//       "pattern": "^projects/[^/]+/locations/[^/]+/apis/[^/]+/configs/[^/]+$",
1986	//       "required": true,
1987	//       "type": "string"
1988	//     }
1989	//   },
1990	//   "path": "v1alpha2/{+resource}:setIamPolicy",
1991	//   "request": {
1992	//     "$ref": "ApigatewaySetIamPolicyRequest"
1993	//   },
1994	//   "response": {
1995	//     "$ref": "ApigatewayPolicy"
1996	//   },
1997	//   "scopes": [
1998	//     "https://www.googleapis.com/auth/cloud-platform"
1999	//   ]
2000	// }
2001
2002}
2003
2004// method id "apigateway.projects.locations.apis.configs.testIamPermissions":
2005
2006type ProjectsLocationsApisConfigsTestIamPermissionsCall struct {
2007	s                                   *Service
2008	resource                            string
2009	apigatewaytestiampermissionsrequest *ApigatewayTestIamPermissionsRequest
2010	urlParams_                          gensupport.URLParams
2011	ctx_                                context.Context
2012	header_                             http.Header
2013}
2014
2015// TestIamPermissions: Returns permissions that a caller has on the
2016// specified resource. If the resource does not exist, this will return
2017// an empty set of permissions, not a `NOT_FOUND` error. Note: This
2018// operation is designed to be used for building permission-aware UIs
2019// and command-line tools, not for authorization checking. This
2020// operation may "fail open" without warning.
2021func (r *ProjectsLocationsApisConfigsService) TestIamPermissions(resource string, apigatewaytestiampermissionsrequest *ApigatewayTestIamPermissionsRequest) *ProjectsLocationsApisConfigsTestIamPermissionsCall {
2022	c := &ProjectsLocationsApisConfigsTestIamPermissionsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
2023	c.resource = resource
2024	c.apigatewaytestiampermissionsrequest = apigatewaytestiampermissionsrequest
2025	return c
2026}
2027
2028// Fields allows partial responses to be retrieved. See
2029// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
2030// for more information.
2031func (c *ProjectsLocationsApisConfigsTestIamPermissionsCall) Fields(s ...googleapi.Field) *ProjectsLocationsApisConfigsTestIamPermissionsCall {
2032	c.urlParams_.Set("fields", googleapi.CombineFields(s))
2033	return c
2034}
2035
2036// Context sets the context to be used in this call's Do method. Any
2037// pending HTTP request will be aborted if the provided context is
2038// canceled.
2039func (c *ProjectsLocationsApisConfigsTestIamPermissionsCall) Context(ctx context.Context) *ProjectsLocationsApisConfigsTestIamPermissionsCall {
2040	c.ctx_ = ctx
2041	return c
2042}
2043
2044// Header returns an http.Header that can be modified by the caller to
2045// add HTTP headers to the request.
2046func (c *ProjectsLocationsApisConfigsTestIamPermissionsCall) Header() http.Header {
2047	if c.header_ == nil {
2048		c.header_ = make(http.Header)
2049	}
2050	return c.header_
2051}
2052
2053func (c *ProjectsLocationsApisConfigsTestIamPermissionsCall) doRequest(alt string) (*http.Response, error) {
2054	reqHeaders := make(http.Header)
2055	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200926")
2056	for k, v := range c.header_ {
2057		reqHeaders[k] = v
2058	}
2059	reqHeaders.Set("User-Agent", c.s.userAgent())
2060	var body io.Reader = nil
2061	body, err := googleapi.WithoutDataWrapper.JSONReader(c.apigatewaytestiampermissionsrequest)
2062	if err != nil {
2063		return nil, err
2064	}
2065	reqHeaders.Set("Content-Type", "application/json")
2066	c.urlParams_.Set("alt", alt)
2067	c.urlParams_.Set("prettyPrint", "false")
2068	urls := googleapi.ResolveRelative(c.s.BasePath, "v1alpha2/{+resource}:testIamPermissions")
2069	urls += "?" + c.urlParams_.Encode()
2070	req, err := http.NewRequest("POST", urls, body)
2071	if err != nil {
2072		return nil, err
2073	}
2074	req.Header = reqHeaders
2075	googleapi.Expand(req.URL, map[string]string{
2076		"resource": c.resource,
2077	})
2078	return gensupport.SendRequest(c.ctx_, c.s.client, req)
2079}
2080
2081// Do executes the "apigateway.projects.locations.apis.configs.testIamPermissions" call.
2082// Exactly one of *ApigatewayTestIamPermissionsResponse or error will be
2083// non-nil. Any non-2xx status code is an error. Response headers are in
2084// either *ApigatewayTestIamPermissionsResponse.ServerResponse.Header or
2085// (if a response was returned at all) in
2086// error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check
2087// whether the returned error was because http.StatusNotModified was
2088// returned.
2089func (c *ProjectsLocationsApisConfigsTestIamPermissionsCall) Do(opts ...googleapi.CallOption) (*ApigatewayTestIamPermissionsResponse, error) {
2090	gensupport.SetOptions(c.urlParams_, opts...)
2091	res, err := c.doRequest("json")
2092	if res != nil && res.StatusCode == http.StatusNotModified {
2093		if res.Body != nil {
2094			res.Body.Close()
2095		}
2096		return nil, &googleapi.Error{
2097			Code:   res.StatusCode,
2098			Header: res.Header,
2099		}
2100	}
2101	if err != nil {
2102		return nil, err
2103	}
2104	defer googleapi.CloseBody(res)
2105	if err := googleapi.CheckResponse(res); err != nil {
2106		return nil, err
2107	}
2108	ret := &ApigatewayTestIamPermissionsResponse{
2109		ServerResponse: googleapi.ServerResponse{
2110			Header:         res.Header,
2111			HTTPStatusCode: res.StatusCode,
2112		},
2113	}
2114	target := &ret
2115	if err := gensupport.DecodeResponse(target, res); err != nil {
2116		return nil, err
2117	}
2118	return ret, nil
2119	// {
2120	//   "description": "Returns permissions that a caller has on the specified resource. If the resource does not exist, this will return an empty set of permissions, not a `NOT_FOUND` error. Note: This operation is designed to be used for building permission-aware UIs and command-line tools, not for authorization checking. This operation may \"fail open\" without warning.",
2121	//   "flatPath": "v1alpha2/projects/{projectsId}/locations/{locationsId}/apis/{apisId}/configs/{configsId}:testIamPermissions",
2122	//   "httpMethod": "POST",
2123	//   "id": "apigateway.projects.locations.apis.configs.testIamPermissions",
2124	//   "parameterOrder": [
2125	//     "resource"
2126	//   ],
2127	//   "parameters": {
2128	//     "resource": {
2129	//       "description": "REQUIRED: The resource for which the policy detail is being requested. See the operation documentation for the appropriate value for this field.",
2130	//       "location": "path",
2131	//       "pattern": "^projects/[^/]+/locations/[^/]+/apis/[^/]+/configs/[^/]+$",
2132	//       "required": true,
2133	//       "type": "string"
2134	//     }
2135	//   },
2136	//   "path": "v1alpha2/{+resource}:testIamPermissions",
2137	//   "request": {
2138	//     "$ref": "ApigatewayTestIamPermissionsRequest"
2139	//   },
2140	//   "response": {
2141	//     "$ref": "ApigatewayTestIamPermissionsResponse"
2142	//   },
2143	//   "scopes": [
2144	//     "https://www.googleapis.com/auth/cloud-platform"
2145	//   ]
2146	// }
2147
2148}
2149
2150// method id "apigateway.projects.locations.gateways.getIamPolicy":
2151
2152type ProjectsLocationsGatewaysGetIamPolicyCall struct {
2153	s            *Service
2154	resource     string
2155	urlParams_   gensupport.URLParams
2156	ifNoneMatch_ string
2157	ctx_         context.Context
2158	header_      http.Header
2159}
2160
2161// GetIamPolicy: Gets the access control policy for a resource. Returns
2162// an empty policy if the resource exists and does not have a policy
2163// set.
2164func (r *ProjectsLocationsGatewaysService) GetIamPolicy(resource string) *ProjectsLocationsGatewaysGetIamPolicyCall {
2165	c := &ProjectsLocationsGatewaysGetIamPolicyCall{s: r.s, urlParams_: make(gensupport.URLParams)}
2166	c.resource = resource
2167	return c
2168}
2169
2170// OptionsRequestedPolicyVersion sets the optional parameter
2171// "options.requestedPolicyVersion": The policy format version to be
2172// returned. Valid values are 0, 1, and 3. Requests specifying an
2173// invalid value will be rejected. Requests for policies with any
2174// conditional bindings must specify version 3. Policies without any
2175// conditional bindings may specify any valid value or leave the field
2176// unset. To learn which resources support conditions in their IAM
2177// policies, see the [IAM
2178// documentation](https://cloud.google.com/iam/help/conditions/resource-p
2179// olicies).
2180func (c *ProjectsLocationsGatewaysGetIamPolicyCall) OptionsRequestedPolicyVersion(optionsRequestedPolicyVersion int64) *ProjectsLocationsGatewaysGetIamPolicyCall {
2181	c.urlParams_.Set("options.requestedPolicyVersion", fmt.Sprint(optionsRequestedPolicyVersion))
2182	return c
2183}
2184
2185// Fields allows partial responses to be retrieved. See
2186// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
2187// for more information.
2188func (c *ProjectsLocationsGatewaysGetIamPolicyCall) Fields(s ...googleapi.Field) *ProjectsLocationsGatewaysGetIamPolicyCall {
2189	c.urlParams_.Set("fields", googleapi.CombineFields(s))
2190	return c
2191}
2192
2193// IfNoneMatch sets the optional parameter which makes the operation
2194// fail if the object's ETag matches the given value. This is useful for
2195// getting updates only after the object has changed since the last
2196// request. Use googleapi.IsNotModified to check whether the response
2197// error from Do is the result of In-None-Match.
2198func (c *ProjectsLocationsGatewaysGetIamPolicyCall) IfNoneMatch(entityTag string) *ProjectsLocationsGatewaysGetIamPolicyCall {
2199	c.ifNoneMatch_ = entityTag
2200	return c
2201}
2202
2203// Context sets the context to be used in this call's Do method. Any
2204// pending HTTP request will be aborted if the provided context is
2205// canceled.
2206func (c *ProjectsLocationsGatewaysGetIamPolicyCall) Context(ctx context.Context) *ProjectsLocationsGatewaysGetIamPolicyCall {
2207	c.ctx_ = ctx
2208	return c
2209}
2210
2211// Header returns an http.Header that can be modified by the caller to
2212// add HTTP headers to the request.
2213func (c *ProjectsLocationsGatewaysGetIamPolicyCall) Header() http.Header {
2214	if c.header_ == nil {
2215		c.header_ = make(http.Header)
2216	}
2217	return c.header_
2218}
2219
2220func (c *ProjectsLocationsGatewaysGetIamPolicyCall) doRequest(alt string) (*http.Response, error) {
2221	reqHeaders := make(http.Header)
2222	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200926")
2223	for k, v := range c.header_ {
2224		reqHeaders[k] = v
2225	}
2226	reqHeaders.Set("User-Agent", c.s.userAgent())
2227	if c.ifNoneMatch_ != "" {
2228		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
2229	}
2230	var body io.Reader = nil
2231	c.urlParams_.Set("alt", alt)
2232	c.urlParams_.Set("prettyPrint", "false")
2233	urls := googleapi.ResolveRelative(c.s.BasePath, "v1alpha2/{+resource}:getIamPolicy")
2234	urls += "?" + c.urlParams_.Encode()
2235	req, err := http.NewRequest("GET", urls, body)
2236	if err != nil {
2237		return nil, err
2238	}
2239	req.Header = reqHeaders
2240	googleapi.Expand(req.URL, map[string]string{
2241		"resource": c.resource,
2242	})
2243	return gensupport.SendRequest(c.ctx_, c.s.client, req)
2244}
2245
2246// Do executes the "apigateway.projects.locations.gateways.getIamPolicy" call.
2247// Exactly one of *ApigatewayPolicy or error will be non-nil. Any
2248// non-2xx status code is an error. Response headers are in either
2249// *ApigatewayPolicy.ServerResponse.Header or (if a response was
2250// returned at all) in error.(*googleapi.Error).Header. Use
2251// googleapi.IsNotModified to check whether the returned error was
2252// because http.StatusNotModified was returned.
2253func (c *ProjectsLocationsGatewaysGetIamPolicyCall) Do(opts ...googleapi.CallOption) (*ApigatewayPolicy, error) {
2254	gensupport.SetOptions(c.urlParams_, opts...)
2255	res, err := c.doRequest("json")
2256	if res != nil && res.StatusCode == http.StatusNotModified {
2257		if res.Body != nil {
2258			res.Body.Close()
2259		}
2260		return nil, &googleapi.Error{
2261			Code:   res.StatusCode,
2262			Header: res.Header,
2263		}
2264	}
2265	if err != nil {
2266		return nil, err
2267	}
2268	defer googleapi.CloseBody(res)
2269	if err := googleapi.CheckResponse(res); err != nil {
2270		return nil, err
2271	}
2272	ret := &ApigatewayPolicy{
2273		ServerResponse: googleapi.ServerResponse{
2274			Header:         res.Header,
2275			HTTPStatusCode: res.StatusCode,
2276		},
2277	}
2278	target := &ret
2279	if err := gensupport.DecodeResponse(target, res); err != nil {
2280		return nil, err
2281	}
2282	return ret, nil
2283	// {
2284	//   "description": "Gets the access control policy for a resource. Returns an empty policy if the resource exists and does not have a policy set.",
2285	//   "flatPath": "v1alpha2/projects/{projectsId}/locations/{locationsId}/gateways/{gatewaysId}:getIamPolicy",
2286	//   "httpMethod": "GET",
2287	//   "id": "apigateway.projects.locations.gateways.getIamPolicy",
2288	//   "parameterOrder": [
2289	//     "resource"
2290	//   ],
2291	//   "parameters": {
2292	//     "options.requestedPolicyVersion": {
2293	//       "description": "Optional. The policy format version to be returned. Valid values are 0, 1, and 3. Requests specifying an invalid value will be rejected. Requests for policies with any conditional bindings must specify version 3. Policies without any conditional bindings may specify any valid value or leave the field unset. To learn which resources support conditions in their IAM policies, see the [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-policies).",
2294	//       "format": "int32",
2295	//       "location": "query",
2296	//       "type": "integer"
2297	//     },
2298	//     "resource": {
2299	//       "description": "REQUIRED: The resource for which the policy is being requested. See the operation documentation for the appropriate value for this field.",
2300	//       "location": "path",
2301	//       "pattern": "^projects/[^/]+/locations/[^/]+/gateways/[^/]+$",
2302	//       "required": true,
2303	//       "type": "string"
2304	//     }
2305	//   },
2306	//   "path": "v1alpha2/{+resource}:getIamPolicy",
2307	//   "response": {
2308	//     "$ref": "ApigatewayPolicy"
2309	//   },
2310	//   "scopes": [
2311	//     "https://www.googleapis.com/auth/cloud-platform"
2312	//   ]
2313	// }
2314
2315}
2316
2317// method id "apigateway.projects.locations.gateways.setIamPolicy":
2318
2319type ProjectsLocationsGatewaysSetIamPolicyCall struct {
2320	s                             *Service
2321	resource                      string
2322	apigatewaysetiampolicyrequest *ApigatewaySetIamPolicyRequest
2323	urlParams_                    gensupport.URLParams
2324	ctx_                          context.Context
2325	header_                       http.Header
2326}
2327
2328// SetIamPolicy: Sets the access control policy on the specified
2329// resource. Replaces any existing policy. Can return `NOT_FOUND`,
2330// `INVALID_ARGUMENT`, and `PERMISSION_DENIED` errors.
2331func (r *ProjectsLocationsGatewaysService) SetIamPolicy(resource string, apigatewaysetiampolicyrequest *ApigatewaySetIamPolicyRequest) *ProjectsLocationsGatewaysSetIamPolicyCall {
2332	c := &ProjectsLocationsGatewaysSetIamPolicyCall{s: r.s, urlParams_: make(gensupport.URLParams)}
2333	c.resource = resource
2334	c.apigatewaysetiampolicyrequest = apigatewaysetiampolicyrequest
2335	return c
2336}
2337
2338// Fields allows partial responses to be retrieved. See
2339// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
2340// for more information.
2341func (c *ProjectsLocationsGatewaysSetIamPolicyCall) Fields(s ...googleapi.Field) *ProjectsLocationsGatewaysSetIamPolicyCall {
2342	c.urlParams_.Set("fields", googleapi.CombineFields(s))
2343	return c
2344}
2345
2346// Context sets the context to be used in this call's Do method. Any
2347// pending HTTP request will be aborted if the provided context is
2348// canceled.
2349func (c *ProjectsLocationsGatewaysSetIamPolicyCall) Context(ctx context.Context) *ProjectsLocationsGatewaysSetIamPolicyCall {
2350	c.ctx_ = ctx
2351	return c
2352}
2353
2354// Header returns an http.Header that can be modified by the caller to
2355// add HTTP headers to the request.
2356func (c *ProjectsLocationsGatewaysSetIamPolicyCall) Header() http.Header {
2357	if c.header_ == nil {
2358		c.header_ = make(http.Header)
2359	}
2360	return c.header_
2361}
2362
2363func (c *ProjectsLocationsGatewaysSetIamPolicyCall) doRequest(alt string) (*http.Response, error) {
2364	reqHeaders := make(http.Header)
2365	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200926")
2366	for k, v := range c.header_ {
2367		reqHeaders[k] = v
2368	}
2369	reqHeaders.Set("User-Agent", c.s.userAgent())
2370	var body io.Reader = nil
2371	body, err := googleapi.WithoutDataWrapper.JSONReader(c.apigatewaysetiampolicyrequest)
2372	if err != nil {
2373		return nil, err
2374	}
2375	reqHeaders.Set("Content-Type", "application/json")
2376	c.urlParams_.Set("alt", alt)
2377	c.urlParams_.Set("prettyPrint", "false")
2378	urls := googleapi.ResolveRelative(c.s.BasePath, "v1alpha2/{+resource}:setIamPolicy")
2379	urls += "?" + c.urlParams_.Encode()
2380	req, err := http.NewRequest("POST", urls, body)
2381	if err != nil {
2382		return nil, err
2383	}
2384	req.Header = reqHeaders
2385	googleapi.Expand(req.URL, map[string]string{
2386		"resource": c.resource,
2387	})
2388	return gensupport.SendRequest(c.ctx_, c.s.client, req)
2389}
2390
2391// Do executes the "apigateway.projects.locations.gateways.setIamPolicy" call.
2392// Exactly one of *ApigatewayPolicy or error will be non-nil. Any
2393// non-2xx status code is an error. Response headers are in either
2394// *ApigatewayPolicy.ServerResponse.Header or (if a response was
2395// returned at all) in error.(*googleapi.Error).Header. Use
2396// googleapi.IsNotModified to check whether the returned error was
2397// because http.StatusNotModified was returned.
2398func (c *ProjectsLocationsGatewaysSetIamPolicyCall) Do(opts ...googleapi.CallOption) (*ApigatewayPolicy, error) {
2399	gensupport.SetOptions(c.urlParams_, opts...)
2400	res, err := c.doRequest("json")
2401	if res != nil && res.StatusCode == http.StatusNotModified {
2402		if res.Body != nil {
2403			res.Body.Close()
2404		}
2405		return nil, &googleapi.Error{
2406			Code:   res.StatusCode,
2407			Header: res.Header,
2408		}
2409	}
2410	if err != nil {
2411		return nil, err
2412	}
2413	defer googleapi.CloseBody(res)
2414	if err := googleapi.CheckResponse(res); err != nil {
2415		return nil, err
2416	}
2417	ret := &ApigatewayPolicy{
2418		ServerResponse: googleapi.ServerResponse{
2419			Header:         res.Header,
2420			HTTPStatusCode: res.StatusCode,
2421		},
2422	}
2423	target := &ret
2424	if err := gensupport.DecodeResponse(target, res); err != nil {
2425		return nil, err
2426	}
2427	return ret, nil
2428	// {
2429	//   "description": "Sets the access control policy on the specified resource. Replaces any existing policy. Can return `NOT_FOUND`, `INVALID_ARGUMENT`, and `PERMISSION_DENIED` errors.",
2430	//   "flatPath": "v1alpha2/projects/{projectsId}/locations/{locationsId}/gateways/{gatewaysId}:setIamPolicy",
2431	//   "httpMethod": "POST",
2432	//   "id": "apigateway.projects.locations.gateways.setIamPolicy",
2433	//   "parameterOrder": [
2434	//     "resource"
2435	//   ],
2436	//   "parameters": {
2437	//     "resource": {
2438	//       "description": "REQUIRED: The resource for which the policy is being specified. See the operation documentation for the appropriate value for this field.",
2439	//       "location": "path",
2440	//       "pattern": "^projects/[^/]+/locations/[^/]+/gateways/[^/]+$",
2441	//       "required": true,
2442	//       "type": "string"
2443	//     }
2444	//   },
2445	//   "path": "v1alpha2/{+resource}:setIamPolicy",
2446	//   "request": {
2447	//     "$ref": "ApigatewaySetIamPolicyRequest"
2448	//   },
2449	//   "response": {
2450	//     "$ref": "ApigatewayPolicy"
2451	//   },
2452	//   "scopes": [
2453	//     "https://www.googleapis.com/auth/cloud-platform"
2454	//   ]
2455	// }
2456
2457}
2458
2459// method id "apigateway.projects.locations.gateways.testIamPermissions":
2460
2461type ProjectsLocationsGatewaysTestIamPermissionsCall struct {
2462	s                                   *Service
2463	resource                            string
2464	apigatewaytestiampermissionsrequest *ApigatewayTestIamPermissionsRequest
2465	urlParams_                          gensupport.URLParams
2466	ctx_                                context.Context
2467	header_                             http.Header
2468}
2469
2470// TestIamPermissions: Returns permissions that a caller has on the
2471// specified resource. If the resource does not exist, this will return
2472// an empty set of permissions, not a `NOT_FOUND` error. Note: This
2473// operation is designed to be used for building permission-aware UIs
2474// and command-line tools, not for authorization checking. This
2475// operation may "fail open" without warning.
2476func (r *ProjectsLocationsGatewaysService) TestIamPermissions(resource string, apigatewaytestiampermissionsrequest *ApigatewayTestIamPermissionsRequest) *ProjectsLocationsGatewaysTestIamPermissionsCall {
2477	c := &ProjectsLocationsGatewaysTestIamPermissionsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
2478	c.resource = resource
2479	c.apigatewaytestiampermissionsrequest = apigatewaytestiampermissionsrequest
2480	return c
2481}
2482
2483// Fields allows partial responses to be retrieved. See
2484// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
2485// for more information.
2486func (c *ProjectsLocationsGatewaysTestIamPermissionsCall) Fields(s ...googleapi.Field) *ProjectsLocationsGatewaysTestIamPermissionsCall {
2487	c.urlParams_.Set("fields", googleapi.CombineFields(s))
2488	return c
2489}
2490
2491// Context sets the context to be used in this call's Do method. Any
2492// pending HTTP request will be aborted if the provided context is
2493// canceled.
2494func (c *ProjectsLocationsGatewaysTestIamPermissionsCall) Context(ctx context.Context) *ProjectsLocationsGatewaysTestIamPermissionsCall {
2495	c.ctx_ = ctx
2496	return c
2497}
2498
2499// Header returns an http.Header that can be modified by the caller to
2500// add HTTP headers to the request.
2501func (c *ProjectsLocationsGatewaysTestIamPermissionsCall) Header() http.Header {
2502	if c.header_ == nil {
2503		c.header_ = make(http.Header)
2504	}
2505	return c.header_
2506}
2507
2508func (c *ProjectsLocationsGatewaysTestIamPermissionsCall) doRequest(alt string) (*http.Response, error) {
2509	reqHeaders := make(http.Header)
2510	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200926")
2511	for k, v := range c.header_ {
2512		reqHeaders[k] = v
2513	}
2514	reqHeaders.Set("User-Agent", c.s.userAgent())
2515	var body io.Reader = nil
2516	body, err := googleapi.WithoutDataWrapper.JSONReader(c.apigatewaytestiampermissionsrequest)
2517	if err != nil {
2518		return nil, err
2519	}
2520	reqHeaders.Set("Content-Type", "application/json")
2521	c.urlParams_.Set("alt", alt)
2522	c.urlParams_.Set("prettyPrint", "false")
2523	urls := googleapi.ResolveRelative(c.s.BasePath, "v1alpha2/{+resource}:testIamPermissions")
2524	urls += "?" + c.urlParams_.Encode()
2525	req, err := http.NewRequest("POST", urls, body)
2526	if err != nil {
2527		return nil, err
2528	}
2529	req.Header = reqHeaders
2530	googleapi.Expand(req.URL, map[string]string{
2531		"resource": c.resource,
2532	})
2533	return gensupport.SendRequest(c.ctx_, c.s.client, req)
2534}
2535
2536// Do executes the "apigateway.projects.locations.gateways.testIamPermissions" call.
2537// Exactly one of *ApigatewayTestIamPermissionsResponse or error will be
2538// non-nil. Any non-2xx status code is an error. Response headers are in
2539// either *ApigatewayTestIamPermissionsResponse.ServerResponse.Header or
2540// (if a response was returned at all) in
2541// error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check
2542// whether the returned error was because http.StatusNotModified was
2543// returned.
2544func (c *ProjectsLocationsGatewaysTestIamPermissionsCall) Do(opts ...googleapi.CallOption) (*ApigatewayTestIamPermissionsResponse, error) {
2545	gensupport.SetOptions(c.urlParams_, opts...)
2546	res, err := c.doRequest("json")
2547	if res != nil && res.StatusCode == http.StatusNotModified {
2548		if res.Body != nil {
2549			res.Body.Close()
2550		}
2551		return nil, &googleapi.Error{
2552			Code:   res.StatusCode,
2553			Header: res.Header,
2554		}
2555	}
2556	if err != nil {
2557		return nil, err
2558	}
2559	defer googleapi.CloseBody(res)
2560	if err := googleapi.CheckResponse(res); err != nil {
2561		return nil, err
2562	}
2563	ret := &ApigatewayTestIamPermissionsResponse{
2564		ServerResponse: googleapi.ServerResponse{
2565			Header:         res.Header,
2566			HTTPStatusCode: res.StatusCode,
2567		},
2568	}
2569	target := &ret
2570	if err := gensupport.DecodeResponse(target, res); err != nil {
2571		return nil, err
2572	}
2573	return ret, nil
2574	// {
2575	//   "description": "Returns permissions that a caller has on the specified resource. If the resource does not exist, this will return an empty set of permissions, not a `NOT_FOUND` error. Note: This operation is designed to be used for building permission-aware UIs and command-line tools, not for authorization checking. This operation may \"fail open\" without warning.",
2576	//   "flatPath": "v1alpha2/projects/{projectsId}/locations/{locationsId}/gateways/{gatewaysId}:testIamPermissions",
2577	//   "httpMethod": "POST",
2578	//   "id": "apigateway.projects.locations.gateways.testIamPermissions",
2579	//   "parameterOrder": [
2580	//     "resource"
2581	//   ],
2582	//   "parameters": {
2583	//     "resource": {
2584	//       "description": "REQUIRED: The resource for which the policy detail is being requested. See the operation documentation for the appropriate value for this field.",
2585	//       "location": "path",
2586	//       "pattern": "^projects/[^/]+/locations/[^/]+/gateways/[^/]+$",
2587	//       "required": true,
2588	//       "type": "string"
2589	//     }
2590	//   },
2591	//   "path": "v1alpha2/{+resource}:testIamPermissions",
2592	//   "request": {
2593	//     "$ref": "ApigatewayTestIamPermissionsRequest"
2594	//   },
2595	//   "response": {
2596	//     "$ref": "ApigatewayTestIamPermissionsResponse"
2597	//   },
2598	//   "scopes": [
2599	//     "https://www.googleapis.com/auth/cloud-platform"
2600	//   ]
2601	// }
2602
2603}
2604
2605// method id "apigateway.projects.locations.operations.cancel":
2606
2607type ProjectsLocationsOperationsCancelCall struct {
2608	s                                *Service
2609	name                             string
2610	apigatewaycanceloperationrequest *ApigatewayCancelOperationRequest
2611	urlParams_                       gensupport.URLParams
2612	ctx_                             context.Context
2613	header_                          http.Header
2614}
2615
2616// Cancel: Starts asynchronous cancellation on a long-running operation.
2617// The server makes a best effort to cancel the operation, but success
2618// is not guaranteed. If the server doesn't support this method, it
2619// returns `google.rpc.Code.UNIMPLEMENTED`. Clients can use
2620// Operations.GetOperation or other methods to check whether the
2621// cancellation succeeded or whether the operation completed despite
2622// cancellation. On successful cancellation, the operation is not
2623// deleted; instead, it becomes an operation with an Operation.error
2624// value with a google.rpc.Status.code of 1, corresponding to
2625// `Code.CANCELLED`.
2626func (r *ProjectsLocationsOperationsService) Cancel(name string, apigatewaycanceloperationrequest *ApigatewayCancelOperationRequest) *ProjectsLocationsOperationsCancelCall {
2627	c := &ProjectsLocationsOperationsCancelCall{s: r.s, urlParams_: make(gensupport.URLParams)}
2628	c.name = name
2629	c.apigatewaycanceloperationrequest = apigatewaycanceloperationrequest
2630	return c
2631}
2632
2633// Fields allows partial responses to be retrieved. See
2634// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
2635// for more information.
2636func (c *ProjectsLocationsOperationsCancelCall) Fields(s ...googleapi.Field) *ProjectsLocationsOperationsCancelCall {
2637	c.urlParams_.Set("fields", googleapi.CombineFields(s))
2638	return c
2639}
2640
2641// Context sets the context to be used in this call's Do method. Any
2642// pending HTTP request will be aborted if the provided context is
2643// canceled.
2644func (c *ProjectsLocationsOperationsCancelCall) Context(ctx context.Context) *ProjectsLocationsOperationsCancelCall {
2645	c.ctx_ = ctx
2646	return c
2647}
2648
2649// Header returns an http.Header that can be modified by the caller to
2650// add HTTP headers to the request.
2651func (c *ProjectsLocationsOperationsCancelCall) Header() http.Header {
2652	if c.header_ == nil {
2653		c.header_ = make(http.Header)
2654	}
2655	return c.header_
2656}
2657
2658func (c *ProjectsLocationsOperationsCancelCall) doRequest(alt string) (*http.Response, error) {
2659	reqHeaders := make(http.Header)
2660	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200926")
2661	for k, v := range c.header_ {
2662		reqHeaders[k] = v
2663	}
2664	reqHeaders.Set("User-Agent", c.s.userAgent())
2665	var body io.Reader = nil
2666	body, err := googleapi.WithoutDataWrapper.JSONReader(c.apigatewaycanceloperationrequest)
2667	if err != nil {
2668		return nil, err
2669	}
2670	reqHeaders.Set("Content-Type", "application/json")
2671	c.urlParams_.Set("alt", alt)
2672	c.urlParams_.Set("prettyPrint", "false")
2673	urls := googleapi.ResolveRelative(c.s.BasePath, "v1alpha2/{+name}:cancel")
2674	urls += "?" + c.urlParams_.Encode()
2675	req, err := http.NewRequest("POST", urls, body)
2676	if err != nil {
2677		return nil, err
2678	}
2679	req.Header = reqHeaders
2680	googleapi.Expand(req.URL, map[string]string{
2681		"name": c.name,
2682	})
2683	return gensupport.SendRequest(c.ctx_, c.s.client, req)
2684}
2685
2686// Do executes the "apigateway.projects.locations.operations.cancel" call.
2687// Exactly one of *Empty or error will be non-nil. Any non-2xx status
2688// code is an error. Response headers are in either
2689// *Empty.ServerResponse.Header or (if a response was returned at all)
2690// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
2691// check whether the returned error was because http.StatusNotModified
2692// was returned.
2693func (c *ProjectsLocationsOperationsCancelCall) Do(opts ...googleapi.CallOption) (*Empty, error) {
2694	gensupport.SetOptions(c.urlParams_, opts...)
2695	res, err := c.doRequest("json")
2696	if res != nil && res.StatusCode == http.StatusNotModified {
2697		if res.Body != nil {
2698			res.Body.Close()
2699		}
2700		return nil, &googleapi.Error{
2701			Code:   res.StatusCode,
2702			Header: res.Header,
2703		}
2704	}
2705	if err != nil {
2706		return nil, err
2707	}
2708	defer googleapi.CloseBody(res)
2709	if err := googleapi.CheckResponse(res); err != nil {
2710		return nil, err
2711	}
2712	ret := &Empty{
2713		ServerResponse: googleapi.ServerResponse{
2714			Header:         res.Header,
2715			HTTPStatusCode: res.StatusCode,
2716		},
2717	}
2718	target := &ret
2719	if err := gensupport.DecodeResponse(target, res); err != nil {
2720		return nil, err
2721	}
2722	return ret, nil
2723	// {
2724	//   "description": "Starts asynchronous cancellation on a long-running operation. The server makes a best effort to cancel the operation, but success is not guaranteed. If the server doesn't support this method, it returns `google.rpc.Code.UNIMPLEMENTED`. Clients can use Operations.GetOperation or other methods to check whether the cancellation succeeded or whether the operation completed despite cancellation. On successful cancellation, the operation is not deleted; instead, it becomes an operation with an Operation.error value with a google.rpc.Status.code of 1, corresponding to `Code.CANCELLED`.",
2725	//   "flatPath": "v1alpha2/projects/{projectsId}/locations/{locationsId}/operations/{operationsId}:cancel",
2726	//   "httpMethod": "POST",
2727	//   "id": "apigateway.projects.locations.operations.cancel",
2728	//   "parameterOrder": [
2729	//     "name"
2730	//   ],
2731	//   "parameters": {
2732	//     "name": {
2733	//       "description": "The name of the operation resource to be cancelled.",
2734	//       "location": "path",
2735	//       "pattern": "^projects/[^/]+/locations/[^/]+/operations/[^/]+$",
2736	//       "required": true,
2737	//       "type": "string"
2738	//     }
2739	//   },
2740	//   "path": "v1alpha2/{+name}:cancel",
2741	//   "request": {
2742	//     "$ref": "ApigatewayCancelOperationRequest"
2743	//   },
2744	//   "response": {
2745	//     "$ref": "Empty"
2746	//   },
2747	//   "scopes": [
2748	//     "https://www.googleapis.com/auth/cloud-platform"
2749	//   ]
2750	// }
2751
2752}
2753
2754// method id "apigateway.projects.locations.operations.delete":
2755
2756type ProjectsLocationsOperationsDeleteCall struct {
2757	s          *Service
2758	name       string
2759	urlParams_ gensupport.URLParams
2760	ctx_       context.Context
2761	header_    http.Header
2762}
2763
2764// Delete: Deletes a long-running operation. This method indicates that
2765// the client is no longer interested in the operation result. It does
2766// not cancel the operation. If the server doesn't support this method,
2767// it returns `google.rpc.Code.UNIMPLEMENTED`.
2768func (r *ProjectsLocationsOperationsService) Delete(name string) *ProjectsLocationsOperationsDeleteCall {
2769	c := &ProjectsLocationsOperationsDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
2770	c.name = name
2771	return c
2772}
2773
2774// Fields allows partial responses to be retrieved. See
2775// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
2776// for more information.
2777func (c *ProjectsLocationsOperationsDeleteCall) Fields(s ...googleapi.Field) *ProjectsLocationsOperationsDeleteCall {
2778	c.urlParams_.Set("fields", googleapi.CombineFields(s))
2779	return c
2780}
2781
2782// Context sets the context to be used in this call's Do method. Any
2783// pending HTTP request will be aborted if the provided context is
2784// canceled.
2785func (c *ProjectsLocationsOperationsDeleteCall) Context(ctx context.Context) *ProjectsLocationsOperationsDeleteCall {
2786	c.ctx_ = ctx
2787	return c
2788}
2789
2790// Header returns an http.Header that can be modified by the caller to
2791// add HTTP headers to the request.
2792func (c *ProjectsLocationsOperationsDeleteCall) Header() http.Header {
2793	if c.header_ == nil {
2794		c.header_ = make(http.Header)
2795	}
2796	return c.header_
2797}
2798
2799func (c *ProjectsLocationsOperationsDeleteCall) doRequest(alt string) (*http.Response, error) {
2800	reqHeaders := make(http.Header)
2801	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200926")
2802	for k, v := range c.header_ {
2803		reqHeaders[k] = v
2804	}
2805	reqHeaders.Set("User-Agent", c.s.userAgent())
2806	var body io.Reader = nil
2807	c.urlParams_.Set("alt", alt)
2808	c.urlParams_.Set("prettyPrint", "false")
2809	urls := googleapi.ResolveRelative(c.s.BasePath, "v1alpha2/{+name}")
2810	urls += "?" + c.urlParams_.Encode()
2811	req, err := http.NewRequest("DELETE", urls, body)
2812	if err != nil {
2813		return nil, err
2814	}
2815	req.Header = reqHeaders
2816	googleapi.Expand(req.URL, map[string]string{
2817		"name": c.name,
2818	})
2819	return gensupport.SendRequest(c.ctx_, c.s.client, req)
2820}
2821
2822// Do executes the "apigateway.projects.locations.operations.delete" call.
2823// Exactly one of *Empty or error will be non-nil. Any non-2xx status
2824// code is an error. Response headers are in either
2825// *Empty.ServerResponse.Header or (if a response was returned at all)
2826// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
2827// check whether the returned error was because http.StatusNotModified
2828// was returned.
2829func (c *ProjectsLocationsOperationsDeleteCall) Do(opts ...googleapi.CallOption) (*Empty, error) {
2830	gensupport.SetOptions(c.urlParams_, opts...)
2831	res, err := c.doRequest("json")
2832	if res != nil && res.StatusCode == http.StatusNotModified {
2833		if res.Body != nil {
2834			res.Body.Close()
2835		}
2836		return nil, &googleapi.Error{
2837			Code:   res.StatusCode,
2838			Header: res.Header,
2839		}
2840	}
2841	if err != nil {
2842		return nil, err
2843	}
2844	defer googleapi.CloseBody(res)
2845	if err := googleapi.CheckResponse(res); err != nil {
2846		return nil, err
2847	}
2848	ret := &Empty{
2849		ServerResponse: googleapi.ServerResponse{
2850			Header:         res.Header,
2851			HTTPStatusCode: res.StatusCode,
2852		},
2853	}
2854	target := &ret
2855	if err := gensupport.DecodeResponse(target, res); err != nil {
2856		return nil, err
2857	}
2858	return ret, nil
2859	// {
2860	//   "description": "Deletes a long-running operation. This method indicates that the client is no longer interested in the operation result. It does not cancel the operation. If the server doesn't support this method, it returns `google.rpc.Code.UNIMPLEMENTED`.",
2861	//   "flatPath": "v1alpha2/projects/{projectsId}/locations/{locationsId}/operations/{operationsId}",
2862	//   "httpMethod": "DELETE",
2863	//   "id": "apigateway.projects.locations.operations.delete",
2864	//   "parameterOrder": [
2865	//     "name"
2866	//   ],
2867	//   "parameters": {
2868	//     "name": {
2869	//       "description": "The name of the operation resource to be deleted.",
2870	//       "location": "path",
2871	//       "pattern": "^projects/[^/]+/locations/[^/]+/operations/[^/]+$",
2872	//       "required": true,
2873	//       "type": "string"
2874	//     }
2875	//   },
2876	//   "path": "v1alpha2/{+name}",
2877	//   "response": {
2878	//     "$ref": "Empty"
2879	//   },
2880	//   "scopes": [
2881	//     "https://www.googleapis.com/auth/cloud-platform"
2882	//   ]
2883	// }
2884
2885}
2886
2887// method id "apigateway.projects.locations.operations.get":
2888
2889type ProjectsLocationsOperationsGetCall struct {
2890	s            *Service
2891	name         string
2892	urlParams_   gensupport.URLParams
2893	ifNoneMatch_ string
2894	ctx_         context.Context
2895	header_      http.Header
2896}
2897
2898// Get: Gets the latest state of a long-running operation. Clients can
2899// use this method to poll the operation result at intervals as
2900// recommended by the API service.
2901func (r *ProjectsLocationsOperationsService) Get(name string) *ProjectsLocationsOperationsGetCall {
2902	c := &ProjectsLocationsOperationsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
2903	c.name = name
2904	return c
2905}
2906
2907// Fields allows partial responses to be retrieved. See
2908// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
2909// for more information.
2910func (c *ProjectsLocationsOperationsGetCall) Fields(s ...googleapi.Field) *ProjectsLocationsOperationsGetCall {
2911	c.urlParams_.Set("fields", googleapi.CombineFields(s))
2912	return c
2913}
2914
2915// IfNoneMatch sets the optional parameter which makes the operation
2916// fail if the object's ETag matches the given value. This is useful for
2917// getting updates only after the object has changed since the last
2918// request. Use googleapi.IsNotModified to check whether the response
2919// error from Do is the result of In-None-Match.
2920func (c *ProjectsLocationsOperationsGetCall) IfNoneMatch(entityTag string) *ProjectsLocationsOperationsGetCall {
2921	c.ifNoneMatch_ = entityTag
2922	return c
2923}
2924
2925// Context sets the context to be used in this call's Do method. Any
2926// pending HTTP request will be aborted if the provided context is
2927// canceled.
2928func (c *ProjectsLocationsOperationsGetCall) Context(ctx context.Context) *ProjectsLocationsOperationsGetCall {
2929	c.ctx_ = ctx
2930	return c
2931}
2932
2933// Header returns an http.Header that can be modified by the caller to
2934// add HTTP headers to the request.
2935func (c *ProjectsLocationsOperationsGetCall) Header() http.Header {
2936	if c.header_ == nil {
2937		c.header_ = make(http.Header)
2938	}
2939	return c.header_
2940}
2941
2942func (c *ProjectsLocationsOperationsGetCall) doRequest(alt string) (*http.Response, error) {
2943	reqHeaders := make(http.Header)
2944	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200926")
2945	for k, v := range c.header_ {
2946		reqHeaders[k] = v
2947	}
2948	reqHeaders.Set("User-Agent", c.s.userAgent())
2949	if c.ifNoneMatch_ != "" {
2950		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
2951	}
2952	var body io.Reader = nil
2953	c.urlParams_.Set("alt", alt)
2954	c.urlParams_.Set("prettyPrint", "false")
2955	urls := googleapi.ResolveRelative(c.s.BasePath, "v1alpha2/{+name}")
2956	urls += "?" + c.urlParams_.Encode()
2957	req, err := http.NewRequest("GET", urls, body)
2958	if err != nil {
2959		return nil, err
2960	}
2961	req.Header = reqHeaders
2962	googleapi.Expand(req.URL, map[string]string{
2963		"name": c.name,
2964	})
2965	return gensupport.SendRequest(c.ctx_, c.s.client, req)
2966}
2967
2968// Do executes the "apigateway.projects.locations.operations.get" call.
2969// Exactly one of *ApigatewayOperation or error will be non-nil. Any
2970// non-2xx status code is an error. Response headers are in either
2971// *ApigatewayOperation.ServerResponse.Header or (if a response was
2972// returned at all) in error.(*googleapi.Error).Header. Use
2973// googleapi.IsNotModified to check whether the returned error was
2974// because http.StatusNotModified was returned.
2975func (c *ProjectsLocationsOperationsGetCall) Do(opts ...googleapi.CallOption) (*ApigatewayOperation, error) {
2976	gensupport.SetOptions(c.urlParams_, opts...)
2977	res, err := c.doRequest("json")
2978	if res != nil && res.StatusCode == http.StatusNotModified {
2979		if res.Body != nil {
2980			res.Body.Close()
2981		}
2982		return nil, &googleapi.Error{
2983			Code:   res.StatusCode,
2984			Header: res.Header,
2985		}
2986	}
2987	if err != nil {
2988		return nil, err
2989	}
2990	defer googleapi.CloseBody(res)
2991	if err := googleapi.CheckResponse(res); err != nil {
2992		return nil, err
2993	}
2994	ret := &ApigatewayOperation{
2995		ServerResponse: googleapi.ServerResponse{
2996			Header:         res.Header,
2997			HTTPStatusCode: res.StatusCode,
2998		},
2999	}
3000	target := &ret
3001	if err := gensupport.DecodeResponse(target, res); err != nil {
3002		return nil, err
3003	}
3004	return ret, nil
3005	// {
3006	//   "description": "Gets the latest state of a long-running operation. Clients can use this method to poll the operation result at intervals as recommended by the API service.",
3007	//   "flatPath": "v1alpha2/projects/{projectsId}/locations/{locationsId}/operations/{operationsId}",
3008	//   "httpMethod": "GET",
3009	//   "id": "apigateway.projects.locations.operations.get",
3010	//   "parameterOrder": [
3011	//     "name"
3012	//   ],
3013	//   "parameters": {
3014	//     "name": {
3015	//       "description": "The name of the operation resource.",
3016	//       "location": "path",
3017	//       "pattern": "^projects/[^/]+/locations/[^/]+/operations/[^/]+$",
3018	//       "required": true,
3019	//       "type": "string"
3020	//     }
3021	//   },
3022	//   "path": "v1alpha2/{+name}",
3023	//   "response": {
3024	//     "$ref": "ApigatewayOperation"
3025	//   },
3026	//   "scopes": [
3027	//     "https://www.googleapis.com/auth/cloud-platform"
3028	//   ]
3029	// }
3030
3031}
3032
3033// method id "apigateway.projects.locations.operations.list":
3034
3035type ProjectsLocationsOperationsListCall struct {
3036	s            *Service
3037	name         string
3038	urlParams_   gensupport.URLParams
3039	ifNoneMatch_ string
3040	ctx_         context.Context
3041	header_      http.Header
3042}
3043
3044// List: Lists operations that match the specified filter in the
3045// request. If the server doesn't support this method, it returns
3046// `UNIMPLEMENTED`. NOTE: the `name` binding allows API services to
3047// override the binding to use different resource name schemes, such as
3048// `users/*/operations`. To override the binding, API services can add a
3049// binding such as "/v1/{name=users/*}/operations" to their service
3050// configuration. For backwards compatibility, the default name includes
3051// the operations collection id, however overriding users must ensure
3052// the name binding is the parent resource, without the operations
3053// collection id.
3054func (r *ProjectsLocationsOperationsService) List(name string) *ProjectsLocationsOperationsListCall {
3055	c := &ProjectsLocationsOperationsListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
3056	c.name = name
3057	return c
3058}
3059
3060// Filter sets the optional parameter "filter": The standard list
3061// filter.
3062func (c *ProjectsLocationsOperationsListCall) Filter(filter string) *ProjectsLocationsOperationsListCall {
3063	c.urlParams_.Set("filter", filter)
3064	return c
3065}
3066
3067// PageSize sets the optional parameter "pageSize": The standard list
3068// page size.
3069func (c *ProjectsLocationsOperationsListCall) PageSize(pageSize int64) *ProjectsLocationsOperationsListCall {
3070	c.urlParams_.Set("pageSize", fmt.Sprint(pageSize))
3071	return c
3072}
3073
3074// PageToken sets the optional parameter "pageToken": The standard list
3075// page token.
3076func (c *ProjectsLocationsOperationsListCall) PageToken(pageToken string) *ProjectsLocationsOperationsListCall {
3077	c.urlParams_.Set("pageToken", pageToken)
3078	return c
3079}
3080
3081// Fields allows partial responses to be retrieved. See
3082// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
3083// for more information.
3084func (c *ProjectsLocationsOperationsListCall) Fields(s ...googleapi.Field) *ProjectsLocationsOperationsListCall {
3085	c.urlParams_.Set("fields", googleapi.CombineFields(s))
3086	return c
3087}
3088
3089// IfNoneMatch sets the optional parameter which makes the operation
3090// fail if the object's ETag matches the given value. This is useful for
3091// getting updates only after the object has changed since the last
3092// request. Use googleapi.IsNotModified to check whether the response
3093// error from Do is the result of In-None-Match.
3094func (c *ProjectsLocationsOperationsListCall) IfNoneMatch(entityTag string) *ProjectsLocationsOperationsListCall {
3095	c.ifNoneMatch_ = entityTag
3096	return c
3097}
3098
3099// Context sets the context to be used in this call's Do method. Any
3100// pending HTTP request will be aborted if the provided context is
3101// canceled.
3102func (c *ProjectsLocationsOperationsListCall) Context(ctx context.Context) *ProjectsLocationsOperationsListCall {
3103	c.ctx_ = ctx
3104	return c
3105}
3106
3107// Header returns an http.Header that can be modified by the caller to
3108// add HTTP headers to the request.
3109func (c *ProjectsLocationsOperationsListCall) Header() http.Header {
3110	if c.header_ == nil {
3111		c.header_ = make(http.Header)
3112	}
3113	return c.header_
3114}
3115
3116func (c *ProjectsLocationsOperationsListCall) doRequest(alt string) (*http.Response, error) {
3117	reqHeaders := make(http.Header)
3118	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200926")
3119	for k, v := range c.header_ {
3120		reqHeaders[k] = v
3121	}
3122	reqHeaders.Set("User-Agent", c.s.userAgent())
3123	if c.ifNoneMatch_ != "" {
3124		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
3125	}
3126	var body io.Reader = nil
3127	c.urlParams_.Set("alt", alt)
3128	c.urlParams_.Set("prettyPrint", "false")
3129	urls := googleapi.ResolveRelative(c.s.BasePath, "v1alpha2/{+name}/operations")
3130	urls += "?" + c.urlParams_.Encode()
3131	req, err := http.NewRequest("GET", urls, body)
3132	if err != nil {
3133		return nil, err
3134	}
3135	req.Header = reqHeaders
3136	googleapi.Expand(req.URL, map[string]string{
3137		"name": c.name,
3138	})
3139	return gensupport.SendRequest(c.ctx_, c.s.client, req)
3140}
3141
3142// Do executes the "apigateway.projects.locations.operations.list" call.
3143// Exactly one of *ApigatewayListOperationsResponse or error will be
3144// non-nil. Any non-2xx status code is an error. Response headers are in
3145// either *ApigatewayListOperationsResponse.ServerResponse.Header or (if
3146// a response was returned at all) in error.(*googleapi.Error).Header.
3147// Use googleapi.IsNotModified to check whether the returned error was
3148// because http.StatusNotModified was returned.
3149func (c *ProjectsLocationsOperationsListCall) Do(opts ...googleapi.CallOption) (*ApigatewayListOperationsResponse, error) {
3150	gensupport.SetOptions(c.urlParams_, opts...)
3151	res, err := c.doRequest("json")
3152	if res != nil && res.StatusCode == http.StatusNotModified {
3153		if res.Body != nil {
3154			res.Body.Close()
3155		}
3156		return nil, &googleapi.Error{
3157			Code:   res.StatusCode,
3158			Header: res.Header,
3159		}
3160	}
3161	if err != nil {
3162		return nil, err
3163	}
3164	defer googleapi.CloseBody(res)
3165	if err := googleapi.CheckResponse(res); err != nil {
3166		return nil, err
3167	}
3168	ret := &ApigatewayListOperationsResponse{
3169		ServerResponse: googleapi.ServerResponse{
3170			Header:         res.Header,
3171			HTTPStatusCode: res.StatusCode,
3172		},
3173	}
3174	target := &ret
3175	if err := gensupport.DecodeResponse(target, res); err != nil {
3176		return nil, err
3177	}
3178	return ret, nil
3179	// {
3180	//   "description": "Lists operations that match the specified filter in the request. If the server doesn't support this method, it returns `UNIMPLEMENTED`. NOTE: the `name` binding allows API services to override the binding to use different resource name schemes, such as `users/*/operations`. To override the binding, API services can add a binding such as `\"/v1/{name=users/*}/operations\"` to their service configuration. For backwards compatibility, the default name includes the operations collection id, however overriding users must ensure the name binding is the parent resource, without the operations collection id.",
3181	//   "flatPath": "v1alpha2/projects/{projectsId}/locations/{locationsId}/operations",
3182	//   "httpMethod": "GET",
3183	//   "id": "apigateway.projects.locations.operations.list",
3184	//   "parameterOrder": [
3185	//     "name"
3186	//   ],
3187	//   "parameters": {
3188	//     "filter": {
3189	//       "description": "The standard list filter.",
3190	//       "location": "query",
3191	//       "type": "string"
3192	//     },
3193	//     "name": {
3194	//       "description": "The name of the operation's parent resource.",
3195	//       "location": "path",
3196	//       "pattern": "^projects/[^/]+/locations/[^/]+$",
3197	//       "required": true,
3198	//       "type": "string"
3199	//     },
3200	//     "pageSize": {
3201	//       "description": "The standard list page size.",
3202	//       "format": "int32",
3203	//       "location": "query",
3204	//       "type": "integer"
3205	//     },
3206	//     "pageToken": {
3207	//       "description": "The standard list page token.",
3208	//       "location": "query",
3209	//       "type": "string"
3210	//     }
3211	//   },
3212	//   "path": "v1alpha2/{+name}/operations",
3213	//   "response": {
3214	//     "$ref": "ApigatewayListOperationsResponse"
3215	//   },
3216	//   "scopes": [
3217	//     "https://www.googleapis.com/auth/cloud-platform"
3218	//   ]
3219	// }
3220
3221}
3222
3223// Pages invokes f for each page of results.
3224// A non-nil error returned from f will halt the iteration.
3225// The provided context supersedes any context provided to the Context method.
3226func (c *ProjectsLocationsOperationsListCall) Pages(ctx context.Context, f func(*ApigatewayListOperationsResponse) error) error {
3227	c.ctx_ = ctx
3228	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
3229	for {
3230		x, err := c.Do()
3231		if err != nil {
3232			return err
3233		}
3234		if err := f(x); err != nil {
3235			return err
3236		}
3237		if x.NextPageToken == "" {
3238			return nil
3239		}
3240		c.PageToken(x.NextPageToken)
3241	}
3242}
3243