1// Copyright 2021 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 memcache provides access to the Cloud Memorystore for Memcached API.
8//
9// For product documentation, see: https://cloud.google.com/memorystore/
10//
11// Creating a client
12//
13// Usage example:
14//
15//   import "google.golang.org/api/memcache/v1"
16//   ...
17//   ctx := context.Background()
18//   memcacheService, err := memcache.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//   memcacheService, err := memcache.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//   memcacheService, err := memcache.NewService(ctx, option.WithTokenSource(config.TokenSource(ctx, token)))
36//
37// See https://godoc.org/google.golang.org/api/option/ for details on options.
38package memcache // import "google.golang.org/api/memcache/v1"
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 = "memcache:v1"
75const apiName = "memcache"
76const apiVersion = "v1"
77const basePath = "https://memcache.googleapis.com/"
78const mtlsBasePath = "https://memcache.mtls.googleapis.com/"
79
80// OAuth2 scopes used by this API.
81const (
82	// See, edit, configure, and delete your Google Cloud data and see the
83	// email address for your Google Account.
84	CloudPlatformScope = "https://www.googleapis.com/auth/cloud-platform"
85)
86
87// NewService creates a new Service.
88func NewService(ctx context.Context, opts ...option.ClientOption) (*Service, error) {
89	scopesOption := option.WithScopes(
90		"https://www.googleapis.com/auth/cloud-platform",
91	)
92	// NOTE: prepend, so we don't override user-specified scopes.
93	opts = append([]option.ClientOption{scopesOption}, opts...)
94	opts = append(opts, internaloption.WithDefaultEndpoint(basePath))
95	opts = append(opts, internaloption.WithDefaultMTLSEndpoint(mtlsBasePath))
96	client, endpoint, err := htransport.NewClient(ctx, opts...)
97	if err != nil {
98		return nil, err
99	}
100	s, err := New(client)
101	if err != nil {
102		return nil, err
103	}
104	if endpoint != "" {
105		s.BasePath = endpoint
106	}
107	return s, nil
108}
109
110// New creates a new Service. It uses the provided http.Client for requests.
111//
112// Deprecated: please use NewService instead.
113// To provide a custom HTTP client, use option.WithHTTPClient.
114// If you are using google.golang.org/api/googleapis/transport.APIKey, use option.WithAPIKey with NewService instead.
115func New(client *http.Client) (*Service, error) {
116	if client == nil {
117		return nil, errors.New("client is nil")
118	}
119	s := &Service{client: client, BasePath: basePath}
120	s.Projects = NewProjectsService(s)
121	return s, nil
122}
123
124type Service struct {
125	client    *http.Client
126	BasePath  string // API endpoint base URL
127	UserAgent string // optional additional User-Agent fragment
128
129	Projects *ProjectsService
130}
131
132func (s *Service) userAgent() string {
133	if s.UserAgent == "" {
134		return googleapi.UserAgent
135	}
136	return googleapi.UserAgent + " " + s.UserAgent
137}
138
139func NewProjectsService(s *Service) *ProjectsService {
140	rs := &ProjectsService{s: s}
141	rs.Locations = NewProjectsLocationsService(s)
142	return rs
143}
144
145type ProjectsService struct {
146	s *Service
147
148	Locations *ProjectsLocationsService
149}
150
151func NewProjectsLocationsService(s *Service) *ProjectsLocationsService {
152	rs := &ProjectsLocationsService{s: s}
153	rs.Instances = NewProjectsLocationsInstancesService(s)
154	rs.Operations = NewProjectsLocationsOperationsService(s)
155	return rs
156}
157
158type ProjectsLocationsService struct {
159	s *Service
160
161	Instances *ProjectsLocationsInstancesService
162
163	Operations *ProjectsLocationsOperationsService
164}
165
166func NewProjectsLocationsInstancesService(s *Service) *ProjectsLocationsInstancesService {
167	rs := &ProjectsLocationsInstancesService{s: s}
168	return rs
169}
170
171type ProjectsLocationsInstancesService struct {
172	s *Service
173}
174
175func NewProjectsLocationsOperationsService(s *Service) *ProjectsLocationsOperationsService {
176	rs := &ProjectsLocationsOperationsService{s: s}
177	return rs
178}
179
180type ProjectsLocationsOperationsService struct {
181	s *Service
182}
183
184// ApplyParametersRequest: Request for ApplyParameters.
185type ApplyParametersRequest struct {
186	// ApplyAll: Whether to apply instance-level parameter group to all
187	// nodes. If set to true, users are restricted from specifying
188	// individual nodes, and `ApplyParameters` updates all nodes within the
189	// instance.
190	ApplyAll bool `json:"applyAll,omitempty"`
191
192	// NodeIds: Nodes to which the instance-level parameter group is
193	// applied.
194	NodeIds []string `json:"nodeIds,omitempty"`
195
196	// ForceSendFields is a list of field names (e.g. "ApplyAll") to
197	// unconditionally include in API requests. By default, fields with
198	// empty or default values are omitted from API requests. However, any
199	// non-pointer, non-interface field appearing in ForceSendFields will be
200	// sent to the server regardless of whether the field is empty or not.
201	// This may be used to include empty fields in Patch requests.
202	ForceSendFields []string `json:"-"`
203
204	// NullFields is a list of field names (e.g. "ApplyAll") to include in
205	// API requests with the JSON null value. By default, fields with empty
206	// values are omitted from API requests. However, any field with an
207	// empty value appearing in NullFields will be sent to the server as
208	// null. It is an error if a field in this list has a non-empty value.
209	// This may be used to include null fields in Patch requests.
210	NullFields []string `json:"-"`
211}
212
213func (s *ApplyParametersRequest) MarshalJSON() ([]byte, error) {
214	type NoMethod ApplyParametersRequest
215	raw := NoMethod(*s)
216	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
217}
218
219// CancelOperationRequest: The request message for
220// Operations.CancelOperation.
221type CancelOperationRequest struct {
222}
223
224// DailyCycle: Time window specified for daily operations.
225type DailyCycle struct {
226	// Duration: Output only. Duration of the time window, set by service
227	// producer.
228	Duration string `json:"duration,omitempty"`
229
230	// StartTime: Time within the day to start the operations.
231	StartTime *TimeOfDay `json:"startTime,omitempty"`
232
233	// ForceSendFields is a list of field names (e.g. "Duration") to
234	// unconditionally include in API requests. By default, fields with
235	// empty or default values are omitted from API requests. However, any
236	// non-pointer, non-interface field appearing in ForceSendFields will be
237	// sent to the server regardless of whether the field is empty or not.
238	// This may be used to include empty fields in Patch requests.
239	ForceSendFields []string `json:"-"`
240
241	// NullFields is a list of field names (e.g. "Duration") to include in
242	// API requests with the JSON null value. By default, fields with empty
243	// values are omitted from API requests. However, any field with an
244	// empty value appearing in NullFields will be sent to the server as
245	// null. It is an error if a field in this list has a non-empty value.
246	// This may be used to include null fields in Patch requests.
247	NullFields []string `json:"-"`
248}
249
250func (s *DailyCycle) MarshalJSON() ([]byte, error) {
251	type NoMethod DailyCycle
252	raw := NoMethod(*s)
253	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
254}
255
256// Date: Represents a whole or partial calendar date, such as a
257// birthday. The time of day and time zone are either specified
258// elsewhere or are insignificant. The date is relative to the Gregorian
259// Calendar. This can represent one of the following: * A full date,
260// with non-zero year, month, and day values * A month and day value,
261// with a zero year, such as an anniversary * A year on its own, with
262// zero month and day values * A year and month value, with a zero day,
263// such as a credit card expiration date Related types are
264// google.type.TimeOfDay and `google.protobuf.Timestamp`.
265type Date struct {
266	// Day: Day of a month. Must be from 1 to 31 and valid for the year and
267	// month, or 0 to specify a year by itself or a year and month where the
268	// day isn't significant.
269	Day int64 `json:"day,omitempty"`
270
271	// Month: Month of a year. Must be from 1 to 12, or 0 to specify a year
272	// without a month and day.
273	Month int64 `json:"month,omitempty"`
274
275	// Year: Year of the date. Must be from 1 to 9999, or 0 to specify a
276	// date without a year.
277	Year int64 `json:"year,omitempty"`
278
279	// ForceSendFields is a list of field names (e.g. "Day") to
280	// unconditionally include in API requests. By default, fields with
281	// empty or default values are omitted from API requests. However, any
282	// non-pointer, non-interface field appearing in ForceSendFields will be
283	// sent to the server regardless of whether the field is empty or not.
284	// This may be used to include empty fields in Patch requests.
285	ForceSendFields []string `json:"-"`
286
287	// NullFields is a list of field names (e.g. "Day") to include in API
288	// requests with the JSON null value. By default, fields with empty
289	// values are omitted from API requests. However, any field with an
290	// empty value appearing in NullFields will be sent to the server as
291	// null. It is an error if a field in this list has a non-empty value.
292	// This may be used to include null fields in Patch requests.
293	NullFields []string `json:"-"`
294}
295
296func (s *Date) MarshalJSON() ([]byte, error) {
297	type NoMethod Date
298	raw := NoMethod(*s)
299	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
300}
301
302// DenyMaintenancePeriod: DenyMaintenancePeriod definition. Maintenance
303// is forbidden within the deny period. The start_date must be less than
304// the end_date.
305type DenyMaintenancePeriod struct {
306	// EndDate: Deny period end date. This can be: * A full date, with
307	// non-zero year, month and day values. * A month and day value, with a
308	// zero year. Allows recurring deny periods each year. Date matching
309	// this period will have to be before the end.
310	EndDate *Date `json:"endDate,omitempty"`
311
312	// StartDate: Deny period start date. This can be: * A full date, with
313	// non-zero year, month and day values. * A month and day value, with a
314	// zero year. Allows recurring deny periods each year. Date matching
315	// this period will have to be the same or after the start.
316	StartDate *Date `json:"startDate,omitempty"`
317
318	// Time: Time in UTC when the Blackout period starts on start_date and
319	// ends on end_date. This can be: * Full time. * All zeros for 00:00:00
320	// UTC
321	Time *TimeOfDay `json:"time,omitempty"`
322
323	// ForceSendFields is a list of field names (e.g. "EndDate") to
324	// unconditionally include in API requests. By default, fields with
325	// empty or default values are omitted from API requests. However, any
326	// non-pointer, non-interface field appearing in ForceSendFields will be
327	// sent to the server regardless of whether the field is empty or not.
328	// This may be used to include empty fields in Patch requests.
329	ForceSendFields []string `json:"-"`
330
331	// NullFields is a list of field names (e.g. "EndDate") to include in
332	// API requests with the JSON null value. By default, fields with empty
333	// values are omitted from API requests. However, any field with an
334	// empty value appearing in NullFields will be sent to the server as
335	// null. It is an error if a field in this list has a non-empty value.
336	// This may be used to include null fields in Patch requests.
337	NullFields []string `json:"-"`
338}
339
340func (s *DenyMaintenancePeriod) MarshalJSON() ([]byte, error) {
341	type NoMethod DenyMaintenancePeriod
342	raw := NoMethod(*s)
343	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
344}
345
346// Empty: A generic empty message that you can re-use to avoid defining
347// duplicated empty messages in your APIs. A typical example is to use
348// it as the request or the response type of an API method. For
349// instance: service Foo { rpc Bar(google.protobuf.Empty) returns
350// (google.protobuf.Empty); } The JSON representation for `Empty` is
351// empty JSON object `{}`.
352type Empty struct {
353	// ServerResponse contains the HTTP response code and headers from the
354	// server.
355	googleapi.ServerResponse `json:"-"`
356}
357
358// GoogleCloudMemcacheV1LocationMetadata: Metadata for the given
359// google.cloud.location.Location.
360type GoogleCloudMemcacheV1LocationMetadata struct {
361	// AvailableZones: Output only. The set of available zones in the
362	// location. The map is keyed by the lowercase ID of each zone, as
363	// defined by GCE. These keys can be specified in the `zones` field when
364	// creating a Memcached instance.
365	AvailableZones map[string]GoogleCloudMemcacheV1ZoneMetadata `json:"availableZones,omitempty"`
366
367	// ForceSendFields is a list of field names (e.g. "AvailableZones") to
368	// unconditionally include in API requests. By default, fields with
369	// empty or default values are omitted from API requests. However, any
370	// non-pointer, non-interface field appearing in ForceSendFields will be
371	// sent to the server regardless of whether the field is empty or not.
372	// This may be used to include empty fields in Patch requests.
373	ForceSendFields []string `json:"-"`
374
375	// NullFields is a list of field names (e.g. "AvailableZones") to
376	// include in API requests with the JSON null value. By default, fields
377	// with empty values are omitted from API requests. However, any field
378	// with an empty value appearing in NullFields will be sent to the
379	// server as null. It is an error if a field in this list has a
380	// non-empty value. This may be used to include null fields in Patch
381	// requests.
382	NullFields []string `json:"-"`
383}
384
385func (s *GoogleCloudMemcacheV1LocationMetadata) MarshalJSON() ([]byte, error) {
386	type NoMethod GoogleCloudMemcacheV1LocationMetadata
387	raw := NoMethod(*s)
388	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
389}
390
391// GoogleCloudMemcacheV1OperationMetadata: Represents the metadata of a
392// long-running operation.
393type GoogleCloudMemcacheV1OperationMetadata struct {
394	// ApiVersion: Output only. API version used to start the operation.
395	ApiVersion string `json:"apiVersion,omitempty"`
396
397	// CancelRequested: Output only. Identifies whether the user has
398	// requested cancellation of the operation. Operations that have
399	// successfully been cancelled have Operation.error value with a
400	// google.rpc.Status.code of 1, corresponding to `Code.CANCELLED`.
401	CancelRequested bool `json:"cancelRequested,omitempty"`
402
403	// CreateTime: Output only. Time when the operation was created.
404	CreateTime string `json:"createTime,omitempty"`
405
406	// EndTime: Output only. Time when the operation finished running.
407	EndTime string `json:"endTime,omitempty"`
408
409	// StatusDetail: Output only. Human-readable status of the operation, if
410	// any.
411	StatusDetail string `json:"statusDetail,omitempty"`
412
413	// Target: Output only. Server-defined resource path for the target of
414	// the operation.
415	Target string `json:"target,omitempty"`
416
417	// Verb: Output only. Name of the verb executed by the operation.
418	Verb string `json:"verb,omitempty"`
419
420	// ForceSendFields is a list of field names (e.g. "ApiVersion") to
421	// unconditionally include in API requests. By default, fields with
422	// empty or default values are omitted from API requests. However, any
423	// non-pointer, non-interface field appearing in ForceSendFields will be
424	// sent to the server regardless of whether the field is empty or not.
425	// This may be used to include empty fields in Patch requests.
426	ForceSendFields []string `json:"-"`
427
428	// NullFields is a list of field names (e.g. "ApiVersion") to include in
429	// API requests with the JSON null value. By default, fields with empty
430	// values are omitted from API requests. However, any field with an
431	// 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 *GoogleCloudMemcacheV1OperationMetadata) MarshalJSON() ([]byte, error) {
438	type NoMethod GoogleCloudMemcacheV1OperationMetadata
439	raw := NoMethod(*s)
440	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
441}
442
443type GoogleCloudMemcacheV1ZoneMetadata struct {
444}
445
446type GoogleCloudSaasacceleratorManagementProvidersV1Instance struct {
447	// ConsumerDefinedName: consumer_defined_name is the name that is set by
448	// the consumer. On the other hand Name field represents system-assigned
449	// id of an instance so consumers are not necessarily aware of it.
450	// consumer_defined_name is used for notification/UI purposes for
451	// consumer to recognize their instances.
452	ConsumerDefinedName string `json:"consumerDefinedName,omitempty"`
453
454	// CreateTime: Output only. Timestamp when the resource was created.
455	CreateTime string `json:"createTime,omitempty"`
456
457	// Labels: Optional. Resource labels to represent user provided
458	// metadata. Each label is a key-value pair, where both the key and the
459	// value are arbitrary strings provided by the user.
460	Labels map[string]string `json:"labels,omitempty"`
461
462	// MaintenancePolicyNames: Deprecated. The MaintenancePolicies that have
463	// been attached to the instance. The key must be of the type name of
464	// the oneof policy name defined in MaintenancePolicy, and the
465	// referenced policy must define the same policy type. For complete
466	// details of MaintenancePolicy, please refer to go/cloud-saas-mw-ug.
467	MaintenancePolicyNames map[string]string `json:"maintenancePolicyNames,omitempty"`
468
469	// MaintenanceSchedules: The MaintenanceSchedule contains the scheduling
470	// information of published maintenance schedule with same key as
471	// software_versions.
472	MaintenanceSchedules map[string]GoogleCloudSaasacceleratorManagementProvidersV1MaintenanceSchedule `json:"maintenanceSchedules,omitempty"`
473
474	// MaintenanceSettings: Optional. The MaintenanceSettings associated
475	// with instance.
476	MaintenanceSettings *GoogleCloudSaasacceleratorManagementProvidersV1MaintenanceSettings `json:"maintenanceSettings,omitempty"`
477
478	// Name: Unique name of the resource. It uses the form:
479	// `projects/{project_id|project_number}/locations/{location_id}/instance
480	// s/{instance_id}` Note: Either project_id or project_number can be
481	// used, but keep it consistent with other APIs (e.g. RescheduleUpdate)
482	Name string `json:"name,omitempty"`
483
484	// ProducerMetadata: Output only. Custom string attributes used
485	// primarily to expose producer-specific information in monitoring
486	// dashboards. See go/get-instance-metadata.
487	ProducerMetadata map[string]string `json:"producerMetadata,omitempty"`
488
489	// ProvisionedResources: Output only. The list of data plane resources
490	// provisioned for this instance, e.g. compute VMs. See
491	// go/get-instance-metadata.
492	ProvisionedResources []*GoogleCloudSaasacceleratorManagementProvidersV1ProvisionedResource `json:"provisionedResources,omitempty"`
493
494	// SlmInstanceTemplate: Link to the SLM instance template. Only
495	// populated when updating SLM instances via SSA's Actuation service
496	// adaptor. Service producers with custom control plane (e.g. Cloud SQL)
497	// doesn't need to populate this field. Instead they should use
498	// software_versions.
499	SlmInstanceTemplate string `json:"slmInstanceTemplate,omitempty"`
500
501	// SloMetadata: Output only. SLO metadata for instance classification in
502	// the Standardized dataplane SLO platform. See
503	// go/cloud-ssa-standard-slo for feature description.
504	SloMetadata *GoogleCloudSaasacceleratorManagementProvidersV1SloMetadata `json:"sloMetadata,omitempty"`
505
506	// SoftwareVersions: Software versions that are used to deploy this
507	// instance. This can be mutated by rollout services.
508	SoftwareVersions map[string]string `json:"softwareVersions,omitempty"`
509
510	// State: Output only. Current lifecycle state of the resource (e.g. if
511	// it's being created or ready to use).
512	//
513	// Possible values:
514	//   "STATE_UNSPECIFIED" - Unspecified state.
515	//   "CREATING" - Instance is being created.
516	//   "READY" - Instance has been created and is ready to use.
517	//   "UPDATING" - Instance is being updated.
518	//   "REPAIRING" - Instance is unheathy and under repair.
519	//   "DELETING" - Instance is being deleted.
520	//   "ERROR" - Instance encountered an error and is in indeterministic
521	// state.
522	State string `json:"state,omitempty"`
523
524	// TenantProjectId: Output only. ID of the associated GCP tenant
525	// project. See go/get-instance-metadata.
526	TenantProjectId string `json:"tenantProjectId,omitempty"`
527
528	// UpdateTime: Output only. Timestamp when the resource was last
529	// modified.
530	UpdateTime string `json:"updateTime,omitempty"`
531
532	// ForceSendFields is a list of field names (e.g. "ConsumerDefinedName")
533	// to unconditionally include in API requests. By default, fields with
534	// empty or default values are omitted from API requests. However, any
535	// non-pointer, non-interface field appearing in ForceSendFields will be
536	// sent to the server regardless of whether the field is empty or not.
537	// This may be used to include empty fields in Patch requests.
538	ForceSendFields []string `json:"-"`
539
540	// NullFields is a list of field names (e.g. "ConsumerDefinedName") to
541	// include in API requests with the JSON null value. By default, fields
542	// with empty values are omitted from API requests. However, any field
543	// with an empty value appearing in NullFields will be sent to the
544	// server as null. It is an error if a field in this list has a
545	// non-empty value. This may be used to include null fields in Patch
546	// requests.
547	NullFields []string `json:"-"`
548}
549
550func (s *GoogleCloudSaasacceleratorManagementProvidersV1Instance) MarshalJSON() ([]byte, error) {
551	type NoMethod GoogleCloudSaasacceleratorManagementProvidersV1Instance
552	raw := NoMethod(*s)
553	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
554}
555
556// GoogleCloudSaasacceleratorManagementProvidersV1MaintenanceSchedule:
557// Maintenance schedule which is exposed to customer and potentially end
558// user, indicating published upcoming future maintenance schedule
559type GoogleCloudSaasacceleratorManagementProvidersV1MaintenanceSchedule struct {
560	// CanReschedule: This field is deprecated, and will be always set to
561	// true since reschedule can happen multiple times now. This field
562	// should not be removed until all service producers remove this for
563	// their customers.
564	CanReschedule bool `json:"canReschedule,omitempty"`
565
566	// EndTime: The scheduled end time for the maintenance.
567	EndTime string `json:"endTime,omitempty"`
568
569	// RolloutManagementPolicy: The rollout management policy this
570	// maintenance schedule is associated with. When doing reschedule update
571	// request, the reschedule should be against this given policy.
572	RolloutManagementPolicy string `json:"rolloutManagementPolicy,omitempty"`
573
574	// ScheduleDeadlineTime: schedule_deadline_time is the time deadline any
575	// schedule start time cannot go beyond, including reschedule. It's
576	// normally the initial schedule start time plus maintenance window
577	// length (1 day or 1 week). Maintenance cannot be scheduled to start
578	// beyond this deadline.
579	ScheduleDeadlineTime string `json:"scheduleDeadlineTime,omitempty"`
580
581	// StartTime: The scheduled start time for the maintenance.
582	StartTime string `json:"startTime,omitempty"`
583
584	// ForceSendFields is a list of field names (e.g. "CanReschedule") to
585	// unconditionally include in API requests. By default, fields with
586	// empty or default values are omitted from API requests. However, any
587	// non-pointer, non-interface field appearing in ForceSendFields will be
588	// sent to the server regardless of whether the field is empty or not.
589	// This may be used to include empty fields in Patch requests.
590	ForceSendFields []string `json:"-"`
591
592	// NullFields is a list of field names (e.g. "CanReschedule") to include
593	// in API requests with the JSON null value. By default, fields with
594	// empty values are omitted from API requests. However, any field with
595	// an empty value appearing in NullFields will be sent to the server as
596	// null. It is an error if a field in this list has a non-empty value.
597	// This may be used to include null fields in Patch requests.
598	NullFields []string `json:"-"`
599}
600
601func (s *GoogleCloudSaasacceleratorManagementProvidersV1MaintenanceSchedule) MarshalJSON() ([]byte, error) {
602	type NoMethod GoogleCloudSaasacceleratorManagementProvidersV1MaintenanceSchedule
603	raw := NoMethod(*s)
604	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
605}
606
607// GoogleCloudSaasacceleratorManagementProvidersV1MaintenanceSettings:
608// Maintenance settings associated with instance. Allows service
609// producers and end users to assign settings that controls maintenance
610// on this instance.
611type GoogleCloudSaasacceleratorManagementProvidersV1MaintenanceSettings struct {
612	// Exclude: Optional. Exclude instance from maintenance. When true,
613	// rollout service will not attempt maintenance on the instance. Rollout
614	// service will include the instance in reported rollout progress as not
615	// attempted.
616	Exclude bool `json:"exclude,omitempty"`
617
618	// IsRollback: Optional. If the update call is triggered from rollback,
619	// set the value as true.
620	IsRollback bool `json:"isRollback,omitempty"`
621
622	// MaintenancePolicies: Optional. The MaintenancePolicies that have been
623	// attached to the instance. The key must be of the type name of the
624	// oneof policy name defined in MaintenancePolicy, and the embedded
625	// policy must define the same policy type. For complete details of
626	// MaintenancePolicy, please refer to go/cloud-saas-mw-ug. If only the
627	// name is needed (like in the deprecated
628	// Instance.maintenance_policy_names field) then only populate
629	// MaintenancePolicy.name.
630	MaintenancePolicies map[string]MaintenancePolicy `json:"maintenancePolicies,omitempty"`
631
632	// ForceSendFields is a list of field names (e.g. "Exclude") to
633	// unconditionally include in API requests. By default, fields with
634	// empty or default values are omitted from API requests. However, any
635	// non-pointer, non-interface field appearing in ForceSendFields will be
636	// sent to the server regardless of whether the field is empty or not.
637	// This may be used to include empty fields in Patch requests.
638	ForceSendFields []string `json:"-"`
639
640	// NullFields is a list of field names (e.g. "Exclude") to include in
641	// API requests with the JSON null value. By default, fields with empty
642	// values are omitted from API requests. However, any field with an
643	// empty value appearing in NullFields will be sent to the server as
644	// null. It is an error if a field in this list has a non-empty value.
645	// This may be used to include null fields in Patch requests.
646	NullFields []string `json:"-"`
647}
648
649func (s *GoogleCloudSaasacceleratorManagementProvidersV1MaintenanceSettings) MarshalJSON() ([]byte, error) {
650	type NoMethod GoogleCloudSaasacceleratorManagementProvidersV1MaintenanceSettings
651	raw := NoMethod(*s)
652	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
653}
654
655// GoogleCloudSaasacceleratorManagementProvidersV1NodeSloMetadata: Node
656// information for custom per-node SLO implementations. SSA does not
657// support per-node SLO, but producers can populate per-node information
658// in SloMetadata for custom precomputations. SSA Eligibility Exporter
659// will emit per-node metric based on this information.
660type GoogleCloudSaasacceleratorManagementProvidersV1NodeSloMetadata struct {
661	// Location: The location of the node, if different from instance
662	// location.
663	Location string `json:"location,omitempty"`
664
665	// NodeId: The id of the node. This should be equal to
666	// SaasInstanceNode.node_id.
667	NodeId string `json:"nodeId,omitempty"`
668
669	// PerSliEligibility: If present, this will override eligibility for the
670	// node coming from instance or exclusions for specified SLIs.
671	PerSliEligibility *GoogleCloudSaasacceleratorManagementProvidersV1PerSliSloEligibility `json:"perSliEligibility,omitempty"`
672
673	// ForceSendFields is a list of field names (e.g. "Location") to
674	// unconditionally include in API requests. By default, fields with
675	// empty or default values are omitted from API requests. However, any
676	// non-pointer, non-interface field appearing in ForceSendFields will be
677	// sent to the server regardless of whether the field is empty or not.
678	// This may be used to include empty fields in Patch requests.
679	ForceSendFields []string `json:"-"`
680
681	// NullFields is a list of field names (e.g. "Location") to include in
682	// API requests with the JSON null value. By default, fields with empty
683	// values are omitted from API requests. However, any field with an
684	// empty value appearing in NullFields will be sent to the server as
685	// null. It is an error if a field in this list has a non-empty value.
686	// This may be used to include null fields in Patch requests.
687	NullFields []string `json:"-"`
688}
689
690func (s *GoogleCloudSaasacceleratorManagementProvidersV1NodeSloMetadata) MarshalJSON() ([]byte, error) {
691	type NoMethod GoogleCloudSaasacceleratorManagementProvidersV1NodeSloMetadata
692	raw := NoMethod(*s)
693	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
694}
695
696// GoogleCloudSaasacceleratorManagementProvidersV1PerSliSloEligibility:
697// PerSliSloEligibility is a mapping from an SLI name to eligibility.
698type GoogleCloudSaasacceleratorManagementProvidersV1PerSliSloEligibility struct {
699	// Eligibilities: An entry in the eligibilities map specifies an
700	// eligibility for a particular SLI for the given instance. The SLI key
701	// in the name must be a valid SLI name specified in the Eligibility
702	// Exporter binary flags otherwise an error will be emitted by
703	// Eligibility Exporter and the oncaller will be alerted. If an SLI has
704	// been defined in the binary flags but the eligibilities map does not
705	// contain it, the corresponding SLI time series will not be emitted by
706	// the Eligibility Exporter. This ensures a smooth rollout and
707	// compatibility between the data produced by different versions of the
708	// Eligibility Exporters. If eligibilities map contains a key for an SLI
709	// which has not been declared in the binary flags, there will be an
710	// error message emitted in the Eligibility Exporter log and the metric
711	// for the SLI in question will not be emitted.
712	Eligibilities map[string]GoogleCloudSaasacceleratorManagementProvidersV1SloEligibility `json:"eligibilities,omitempty"`
713
714	// ForceSendFields is a list of field names (e.g. "Eligibilities") to
715	// unconditionally include in API requests. By default, fields with
716	// empty or default values are omitted from API requests. However, any
717	// non-pointer, non-interface field appearing in ForceSendFields will be
718	// sent to the server regardless of whether the field is empty or not.
719	// This may be used to include empty fields in Patch requests.
720	ForceSendFields []string `json:"-"`
721
722	// NullFields is a list of field names (e.g. "Eligibilities") to include
723	// in API requests with the JSON null value. By default, fields with
724	// empty values are omitted from API requests. However, any field with
725	// an empty value appearing in NullFields will be sent to the server as
726	// null. It is an error if a field in this list has a non-empty value.
727	// This may be used to include null fields in Patch requests.
728	NullFields []string `json:"-"`
729}
730
731func (s *GoogleCloudSaasacceleratorManagementProvidersV1PerSliSloEligibility) MarshalJSON() ([]byte, error) {
732	type NoMethod GoogleCloudSaasacceleratorManagementProvidersV1PerSliSloEligibility
733	raw := NoMethod(*s)
734	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
735}
736
737// GoogleCloudSaasacceleratorManagementProvidersV1ProvisionedResource:
738// Describes provisioned dataplane resources.
739type GoogleCloudSaasacceleratorManagementProvidersV1ProvisionedResource struct {
740	// ResourceType: Type of the resource. This can be either a GCP resource
741	// or a custom one (e.g. another cloud provider's VM). For GCP compute
742	// resources use singular form of the names listed in GCP compute API
743	// documentation
744	// (https://cloud.google.com/compute/docs/reference/rest/v1/), prefixed
745	// with 'compute-', for example: 'compute-instance', 'compute-disk',
746	// 'compute-autoscaler'.
747	ResourceType string `json:"resourceType,omitempty"`
748
749	// ResourceUrl: URL identifying the resource, e.g.
750	// "https://www.googleapis.com/compute/v1/projects/...)".
751	ResourceUrl string `json:"resourceUrl,omitempty"`
752
753	// ForceSendFields is a list of field names (e.g. "ResourceType") to
754	// unconditionally include in API requests. By default, fields with
755	// empty or default values are omitted from API requests. However, any
756	// non-pointer, non-interface field appearing in ForceSendFields will be
757	// sent to the server regardless of whether the field is empty or not.
758	// This may be used to include empty fields in Patch requests.
759	ForceSendFields []string `json:"-"`
760
761	// NullFields is a list of field names (e.g. "ResourceType") to include
762	// in API requests with the JSON null value. By default, fields with
763	// empty values are omitted from API requests. However, any field with
764	// an empty value appearing in NullFields will be sent to the server as
765	// null. It is an error if a field in this list has a non-empty value.
766	// This may be used to include null fields in Patch requests.
767	NullFields []string `json:"-"`
768}
769
770func (s *GoogleCloudSaasacceleratorManagementProvidersV1ProvisionedResource) MarshalJSON() ([]byte, error) {
771	type NoMethod GoogleCloudSaasacceleratorManagementProvidersV1ProvisionedResource
772	raw := NoMethod(*s)
773	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
774}
775
776// GoogleCloudSaasacceleratorManagementProvidersV1SloEligibility:
777// SloEligibility is a tuple containing eligibility value: true if an
778// instance is eligible for SLO calculation or false if it should be
779// excluded from all SLO-related calculations along with a user-defined
780// reason.
781type GoogleCloudSaasacceleratorManagementProvidersV1SloEligibility struct {
782	// Eligible: Whether an instance is eligible or ineligible.
783	Eligible bool `json:"eligible,omitempty"`
784
785	// Reason: User-defined reason for the current value of instance
786	// eligibility. Usually, this can be directly mapped to the internal
787	// state. An empty reason is allowed.
788	Reason string `json:"reason,omitempty"`
789
790	// ForceSendFields is a list of field names (e.g. "Eligible") to
791	// unconditionally include in API requests. By default, fields with
792	// empty or default values are omitted from API requests. However, any
793	// non-pointer, non-interface field appearing in ForceSendFields will be
794	// sent to the server regardless of whether the field is empty or not.
795	// This may be used to include empty fields in Patch requests.
796	ForceSendFields []string `json:"-"`
797
798	// NullFields is a list of field names (e.g. "Eligible") to include in
799	// API requests with the JSON null value. By default, fields with empty
800	// values are omitted from API requests. However, any field with an
801	// empty value appearing in NullFields will be sent to the server as
802	// null. It is an error if a field in this list has a non-empty value.
803	// This may be used to include null fields in Patch requests.
804	NullFields []string `json:"-"`
805}
806
807func (s *GoogleCloudSaasacceleratorManagementProvidersV1SloEligibility) MarshalJSON() ([]byte, error) {
808	type NoMethod GoogleCloudSaasacceleratorManagementProvidersV1SloEligibility
809	raw := NoMethod(*s)
810	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
811}
812
813// GoogleCloudSaasacceleratorManagementProvidersV1SloMetadata:
814// SloMetadata contains resources required for proper SLO classification
815// of the instance.
816type GoogleCloudSaasacceleratorManagementProvidersV1SloMetadata struct {
817	// Nodes: Optional. List of nodes. Some producers need to use per-node
818	// metadata to calculate SLO. This field allows such producers to
819	// publish per-node SLO meta data, which will be consumed by SSA
820	// Eligibility Exporter and published in the form of per node metric to
821	// Monarch.
822	Nodes []*GoogleCloudSaasacceleratorManagementProvidersV1NodeSloMetadata `json:"nodes,omitempty"`
823
824	// PerSliEligibility: Optional. Multiple per-instance SLI eligibilities
825	// which apply for individual SLIs.
826	PerSliEligibility *GoogleCloudSaasacceleratorManagementProvidersV1PerSliSloEligibility `json:"perSliEligibility,omitempty"`
827
828	// Tier: Name of the SLO tier the Instance belongs to. This name will be
829	// expected to match the tiers specified in the service SLO
830	// configuration. Field is mandatory and must not be empty.
831	Tier string `json:"tier,omitempty"`
832
833	// ForceSendFields is a list of field names (e.g. "Nodes") to
834	// unconditionally include in API requests. By default, fields with
835	// empty or default values are omitted from API requests. However, any
836	// non-pointer, non-interface field appearing in ForceSendFields will be
837	// sent to the server regardless of whether the field is empty or not.
838	// This may be used to include empty fields in Patch requests.
839	ForceSendFields []string `json:"-"`
840
841	// NullFields is a list of field names (e.g. "Nodes") to include in API
842	// requests with the JSON null value. By default, fields with empty
843	// values are omitted from API requests. However, any field with an
844	// empty value appearing in NullFields will be sent to the server as
845	// null. It is an error if a field in this list has a non-empty value.
846	// This may be used to include null fields in Patch requests.
847	NullFields []string `json:"-"`
848}
849
850func (s *GoogleCloudSaasacceleratorManagementProvidersV1SloMetadata) MarshalJSON() ([]byte, error) {
851	type NoMethod GoogleCloudSaasacceleratorManagementProvidersV1SloMetadata
852	raw := NoMethod(*s)
853	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
854}
855
856// Instance: A Memorystore for Memcached instance
857type Instance struct {
858	// AuthorizedNetwork: The full name of the Google Compute Engine network
859	// (/compute/docs/networks-and-firewalls#networks) to which the instance
860	// is connected. If left unspecified, the `default` network will be
861	// used.
862	AuthorizedNetwork string `json:"authorizedNetwork,omitempty"`
863
864	// CreateTime: Output only. The time the instance was created.
865	CreateTime string `json:"createTime,omitempty"`
866
867	// DiscoveryEndpoint: Output only. Endpoint for the Discovery API.
868	DiscoveryEndpoint string `json:"discoveryEndpoint,omitempty"`
869
870	// DisplayName: User provided name for the instance, which is only used
871	// for display purposes. Cannot be more than 80 characters.
872	DisplayName string `json:"displayName,omitempty"`
873
874	// InstanceMessages: List of messages that describe the current state of
875	// the Memcached instance.
876	InstanceMessages []*InstanceMessage `json:"instanceMessages,omitempty"`
877
878	// Labels: Resource labels to represent user-provided metadata. Refer to
879	// cloud documentation on labels for more details.
880	// https://cloud.google.com/compute/docs/labeling-resources
881	Labels map[string]string `json:"labels,omitempty"`
882
883	// MemcacheFullVersion: Output only. The full version of memcached
884	// server running on this instance. System automatically determines the
885	// full memcached version for an instance based on the input
886	// MemcacheVersion. The full version format will be "memcached-1.5.16".
887	MemcacheFullVersion string `json:"memcacheFullVersion,omitempty"`
888
889	// MemcacheNodes: Output only. List of Memcached nodes. Refer to Node
890	// message for more details.
891	MemcacheNodes []*Node `json:"memcacheNodes,omitempty"`
892
893	// MemcacheVersion: The major version of Memcached software. If not
894	// provided, latest supported version will be used. Currently the latest
895	// supported major version is `MEMCACHE_1_5`. The minor version will be
896	// automatically determined by our system based on the latest supported
897	// minor version.
898	//
899	// Possible values:
900	//   "MEMCACHE_VERSION_UNSPECIFIED"
901	//   "MEMCACHE_1_5" - Memcached 1.5 version.
902	MemcacheVersion string `json:"memcacheVersion,omitempty"`
903
904	// Name: Required. Unique name of the resource in this scope including
905	// project and location using the form:
906	// `projects/{project_id}/locations/{location_id}/instances/{instance_id}
907	// ` Note: Memcached instances are managed and addressed at the regional
908	// level so `location_id` here refers to a Google Cloud region; however,
909	// users may choose which zones Memcached nodes should be provisioned in
910	// within an instance. Refer to zones field for more details.
911	Name string `json:"name,omitempty"`
912
913	// NodeConfig: Required. Configuration for Memcached nodes.
914	NodeConfig *NodeConfig `json:"nodeConfig,omitempty"`
915
916	// NodeCount: Required. Number of nodes in the Memcached instance.
917	NodeCount int64 `json:"nodeCount,omitempty"`
918
919	// Parameters: Optional: User defined parameters to apply to the
920	// memcached process on each node.
921	Parameters *MemcacheParameters `json:"parameters,omitempty"`
922
923	// State: Output only. The state of this Memcached instance.
924	//
925	// Possible values:
926	//   "STATE_UNSPECIFIED" - State not set.
927	//   "CREATING" - Memcached instance is being created.
928	//   "READY" - Memcached instance has been created and ready to be used.
929	//   "UPDATING" - Memcached instance is updating configuration such as
930	// maintenance policy and schedule.
931	//   "DELETING" - Memcached instance is being deleted.
932	//   "PERFORMING_MAINTENANCE" - Memcached instance is going through
933	// maintenance, e.g. data plane rollout.
934	State string `json:"state,omitempty"`
935
936	// UpdateTime: Output only. The time the instance was updated.
937	UpdateTime string `json:"updateTime,omitempty"`
938
939	// Zones: Zones in which Memcached nodes should be provisioned.
940	// Memcached nodes will be equally distributed across these zones. If
941	// not provided, the service will by default create nodes in all zones
942	// in the region for the instance.
943	Zones []string `json:"zones,omitempty"`
944
945	// ServerResponse contains the HTTP response code and headers from the
946	// server.
947	googleapi.ServerResponse `json:"-"`
948
949	// ForceSendFields is a list of field names (e.g. "AuthorizedNetwork")
950	// to unconditionally include in API requests. By default, fields with
951	// empty or default values are omitted from API requests. However, any
952	// non-pointer, non-interface field appearing in ForceSendFields will be
953	// sent to the server regardless of whether the field is empty or not.
954	// This may be used to include empty fields in Patch requests.
955	ForceSendFields []string `json:"-"`
956
957	// NullFields is a list of field names (e.g. "AuthorizedNetwork") to
958	// include in API requests with the JSON null value. By default, fields
959	// with empty values are omitted from API requests. However, any field
960	// with an empty value appearing in NullFields will be sent to the
961	// server as null. It is an error if a field in this list has a
962	// non-empty value. This may be used to include null fields in Patch
963	// requests.
964	NullFields []string `json:"-"`
965}
966
967func (s *Instance) MarshalJSON() ([]byte, error) {
968	type NoMethod Instance
969	raw := NoMethod(*s)
970	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
971}
972
973type InstanceMessage struct {
974	// Code: A code that correspond to one type of user-facing message.
975	//
976	// Possible values:
977	//   "CODE_UNSPECIFIED" - Message Code not set.
978	//   "ZONE_DISTRIBUTION_UNBALANCED" - Memcached nodes are distributed
979	// unevenly.
980	Code string `json:"code,omitempty"`
981
982	// Message: Message on memcached instance which will be exposed to
983	// users.
984	Message string `json:"message,omitempty"`
985
986	// ForceSendFields is a list of field names (e.g. "Code") to
987	// unconditionally include in API requests. By default, fields with
988	// empty or default values are omitted from API requests. However, any
989	// non-pointer, non-interface field appearing in ForceSendFields will be
990	// sent to the server regardless of whether the field is empty or not.
991	// This may be used to include empty fields in Patch requests.
992	ForceSendFields []string `json:"-"`
993
994	// NullFields is a list of field names (e.g. "Code") to include in API
995	// requests with the JSON null value. By default, fields with empty
996	// values are omitted from API requests. However, any field with an
997	// empty value appearing in NullFields will be sent to the server as
998	// null. It is an error if a field in this list has a non-empty value.
999	// This may be used to include null fields in Patch requests.
1000	NullFields []string `json:"-"`
1001}
1002
1003func (s *InstanceMessage) MarshalJSON() ([]byte, error) {
1004	type NoMethod InstanceMessage
1005	raw := NoMethod(*s)
1006	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1007}
1008
1009// ListInstancesResponse: Response for ListInstances.
1010type ListInstancesResponse struct {
1011	// Instances: A list of Memcached instances in the project in the
1012	// specified location, or across all locations. If the `location_id` in
1013	// the parent field of the request is "-", all regions available to the
1014	// project are queried, and the results aggregated.
1015	Instances []*Instance `json:"instances,omitempty"`
1016
1017	// NextPageToken: Token to retrieve the next page of results, or empty
1018	// if there are no more results in the list.
1019	NextPageToken string `json:"nextPageToken,omitempty"`
1020
1021	// Unreachable: Locations that could not be reached.
1022	Unreachable []string `json:"unreachable,omitempty"`
1023
1024	// ServerResponse contains the HTTP response code and headers from the
1025	// server.
1026	googleapi.ServerResponse `json:"-"`
1027
1028	// ForceSendFields is a list of field names (e.g. "Instances") to
1029	// unconditionally include in API requests. By default, fields with
1030	// empty or default values are omitted from API requests. However, any
1031	// non-pointer, non-interface field appearing in ForceSendFields will be
1032	// sent to the server regardless of whether the field is empty or not.
1033	// This may be used to include empty fields in Patch requests.
1034	ForceSendFields []string `json:"-"`
1035
1036	// NullFields is a list of field names (e.g. "Instances") to include in
1037	// API requests with the JSON null value. By default, fields with empty
1038	// values are omitted from API requests. However, any field with an
1039	// empty value appearing in NullFields will be sent to the server as
1040	// null. It is an error if a field in this list has a non-empty value.
1041	// This may be used to include null fields in Patch requests.
1042	NullFields []string `json:"-"`
1043}
1044
1045func (s *ListInstancesResponse) MarshalJSON() ([]byte, error) {
1046	type NoMethod ListInstancesResponse
1047	raw := NoMethod(*s)
1048	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1049}
1050
1051// ListLocationsResponse: The response message for
1052// Locations.ListLocations.
1053type ListLocationsResponse struct {
1054	// Locations: A list of locations that matches the specified filter in
1055	// the request.
1056	Locations []*Location `json:"locations,omitempty"`
1057
1058	// NextPageToken: The standard List next-page token.
1059	NextPageToken string `json:"nextPageToken,omitempty"`
1060
1061	// ServerResponse contains the HTTP response code and headers from the
1062	// server.
1063	googleapi.ServerResponse `json:"-"`
1064
1065	// ForceSendFields is a list of field names (e.g. "Locations") to
1066	// unconditionally include in API requests. By default, fields with
1067	// empty or default values are omitted from API requests. However, any
1068	// non-pointer, non-interface field appearing in ForceSendFields will be
1069	// sent to the server regardless of whether the field is empty or not.
1070	// This may be used to include empty fields in Patch requests.
1071	ForceSendFields []string `json:"-"`
1072
1073	// NullFields is a list of field names (e.g. "Locations") to include in
1074	// API requests with the JSON null value. By default, fields with empty
1075	// values are omitted from API requests. However, any field with an
1076	// empty value appearing in NullFields will be sent to the server as
1077	// null. It is an error if a field in this list has a non-empty value.
1078	// This may be used to include null fields in Patch requests.
1079	NullFields []string `json:"-"`
1080}
1081
1082func (s *ListLocationsResponse) MarshalJSON() ([]byte, error) {
1083	type NoMethod ListLocationsResponse
1084	raw := NoMethod(*s)
1085	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1086}
1087
1088// ListOperationsResponse: The response message for
1089// Operations.ListOperations.
1090type ListOperationsResponse struct {
1091	// NextPageToken: The standard List next-page token.
1092	NextPageToken string `json:"nextPageToken,omitempty"`
1093
1094	// Operations: A list of operations that matches the specified filter in
1095	// the request.
1096	Operations []*Operation `json:"operations,omitempty"`
1097
1098	// ServerResponse contains the HTTP response code and headers from the
1099	// server.
1100	googleapi.ServerResponse `json:"-"`
1101
1102	// ForceSendFields is a list of field names (e.g. "NextPageToken") to
1103	// unconditionally include in API requests. By default, fields with
1104	// empty or default values are omitted from API requests. However, any
1105	// non-pointer, non-interface field appearing in ForceSendFields will be
1106	// sent to the server regardless of whether the field is empty or not.
1107	// This may be used to include empty fields in Patch requests.
1108	ForceSendFields []string `json:"-"`
1109
1110	// NullFields is a list of field names (e.g. "NextPageToken") to include
1111	// in API requests with the JSON null value. By default, fields with
1112	// empty values are omitted from API requests. However, any field with
1113	// an empty value appearing in NullFields will be sent to the server as
1114	// null. It is an error if a field in this list has a non-empty value.
1115	// This may be used to include null fields in Patch requests.
1116	NullFields []string `json:"-"`
1117}
1118
1119func (s *ListOperationsResponse) MarshalJSON() ([]byte, error) {
1120	type NoMethod ListOperationsResponse
1121	raw := NoMethod(*s)
1122	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1123}
1124
1125// Location: A resource that represents Google Cloud Platform location.
1126type Location struct {
1127	// DisplayName: The friendly name for this location, typically a nearby
1128	// city name. For example, "Tokyo".
1129	DisplayName string `json:"displayName,omitempty"`
1130
1131	// Labels: Cross-service attributes for the location. For example
1132	// {"cloud.googleapis.com/region": "us-east1"}
1133	Labels map[string]string `json:"labels,omitempty"`
1134
1135	// LocationId: The canonical id for this location. For example:
1136	// "us-east1".
1137	LocationId string `json:"locationId,omitempty"`
1138
1139	// Metadata: Service-specific metadata. For example the available
1140	// capacity at the given location.
1141	Metadata googleapi.RawMessage `json:"metadata,omitempty"`
1142
1143	// Name: Resource name for the location, which may vary between
1144	// implementations. For example:
1145	// "projects/example-project/locations/us-east1"
1146	Name string `json:"name,omitempty"`
1147
1148	// ServerResponse contains the HTTP response code and headers from the
1149	// server.
1150	googleapi.ServerResponse `json:"-"`
1151
1152	// ForceSendFields is a list of field names (e.g. "DisplayName") to
1153	// unconditionally include in API requests. By default, fields with
1154	// empty or default values are omitted from API requests. However, any
1155	// non-pointer, non-interface field appearing in ForceSendFields will be
1156	// sent to the server regardless of whether the field is empty or not.
1157	// This may be used to include empty fields in Patch requests.
1158	ForceSendFields []string `json:"-"`
1159
1160	// NullFields is a list of field names (e.g. "DisplayName") to include
1161	// in API requests with the JSON null value. By default, fields with
1162	// empty values are omitted from API requests. However, any field with
1163	// an empty value appearing in NullFields will be sent to the server as
1164	// null. It is an error if a field in this list has a non-empty value.
1165	// This may be used to include null fields in Patch requests.
1166	NullFields []string `json:"-"`
1167}
1168
1169func (s *Location) MarshalJSON() ([]byte, error) {
1170	type NoMethod Location
1171	raw := NoMethod(*s)
1172	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1173}
1174
1175// LocationMetadata: Metadata for the given
1176// google.cloud.location.Location.
1177type LocationMetadata struct {
1178	// AvailableZones: Output only. The set of available zones in the
1179	// location. The map is keyed by the lowercase ID of each zone, as
1180	// defined by GCE. These keys can be specified in the `zones` field when
1181	// creating a Memcached instance.
1182	AvailableZones map[string]ZoneMetadata `json:"availableZones,omitempty"`
1183
1184	// ForceSendFields is a list of field names (e.g. "AvailableZones") to
1185	// unconditionally include in API requests. By default, fields with
1186	// empty or default values are omitted from API requests. However, any
1187	// non-pointer, non-interface field appearing in ForceSendFields will be
1188	// sent to the server regardless of whether the field is empty or not.
1189	// This may be used to include empty fields in Patch requests.
1190	ForceSendFields []string `json:"-"`
1191
1192	// NullFields is a list of field names (e.g. "AvailableZones") to
1193	// include in API requests with the JSON null value. By default, fields
1194	// with empty values are omitted from API requests. However, any field
1195	// with an empty value appearing in NullFields will be sent to the
1196	// server as null. It is an error if a field in this list has a
1197	// non-empty value. This may be used to include null fields in Patch
1198	// requests.
1199	NullFields []string `json:"-"`
1200}
1201
1202func (s *LocationMetadata) MarshalJSON() ([]byte, error) {
1203	type NoMethod LocationMetadata
1204	raw := NoMethod(*s)
1205	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1206}
1207
1208// MaintenancePolicy: Defines policies to service maintenance events.
1209type MaintenancePolicy struct {
1210	// CreateTime: Output only. The time when the resource was created.
1211	CreateTime string `json:"createTime,omitempty"`
1212
1213	// Description: Optional. Description of what this policy is for.
1214	// Create/Update methods return INVALID_ARGUMENT if the length is
1215	// greater than 512.
1216	Description string `json:"description,omitempty"`
1217
1218	// Labels: Optional. Resource labels to represent user provided
1219	// metadata. Each label is a key-value pair, where both the key and the
1220	// value are arbitrary strings provided by the user.
1221	Labels map[string]string `json:"labels,omitempty"`
1222
1223	// Name: Required. MaintenancePolicy name using the form:
1224	// `projects/{project_id}/locations/{location_id}/maintenancePolicies/{ma
1225	// intenance_policy_id}` where {project_id} refers to a GCP consumer
1226	// project ID, {location_id} refers to a GCP region/zone,
1227	// {maintenance_policy_id} must be 1-63 characters long and match the
1228	// regular expression `[a-z0-9]([-a-z0-9]*[a-z0-9])?`.
1229	Name string `json:"name,omitempty"`
1230
1231	// State: Optional. The state of the policy.
1232	//
1233	// Possible values:
1234	//   "STATE_UNSPECIFIED" - Unspecified state.
1235	//   "READY" - Resource is ready to be used.
1236	//   "DELETING" - Resource is being deleted. It can no longer be
1237	// attached to instances.
1238	State string `json:"state,omitempty"`
1239
1240	// UpdatePolicy: Maintenance policy applicable to instance update.
1241	UpdatePolicy *UpdatePolicy `json:"updatePolicy,omitempty"`
1242
1243	// UpdateTime: Output only. The time when the resource was updated.
1244	UpdateTime string `json:"updateTime,omitempty"`
1245
1246	// ForceSendFields is a list of field names (e.g. "CreateTime") to
1247	// unconditionally include in API requests. By default, fields with
1248	// empty or default values are omitted from API requests. However, any
1249	// non-pointer, non-interface field appearing in ForceSendFields will be
1250	// sent to the server regardless of whether the field is empty or not.
1251	// This may be used to include empty fields in Patch requests.
1252	ForceSendFields []string `json:"-"`
1253
1254	// NullFields is a list of field names (e.g. "CreateTime") to include in
1255	// API requests with the JSON null value. By default, fields with empty
1256	// values are omitted from API requests. However, any field with an
1257	// empty value appearing in NullFields will be sent to the server as
1258	// null. It is an error if a field in this list has a non-empty value.
1259	// This may be used to include null fields in Patch requests.
1260	NullFields []string `json:"-"`
1261}
1262
1263func (s *MaintenancePolicy) MarshalJSON() ([]byte, error) {
1264	type NoMethod MaintenancePolicy
1265	raw := NoMethod(*s)
1266	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1267}
1268
1269// MaintenanceWindow: MaintenanceWindow definition.
1270type MaintenanceWindow struct {
1271	// DailyCycle: Daily cycle.
1272	DailyCycle *DailyCycle `json:"dailyCycle,omitempty"`
1273
1274	// WeeklyCycle: Weekly cycle.
1275	WeeklyCycle *WeeklyCycle `json:"weeklyCycle,omitempty"`
1276
1277	// ForceSendFields is a list of field names (e.g. "DailyCycle") to
1278	// unconditionally include in API requests. By default, fields with
1279	// empty or default values are omitted from API requests. However, any
1280	// non-pointer, non-interface field appearing in ForceSendFields will be
1281	// sent to the server regardless of whether the field is empty or not.
1282	// This may be used to include empty fields in Patch requests.
1283	ForceSendFields []string `json:"-"`
1284
1285	// NullFields is a list of field names (e.g. "DailyCycle") to include in
1286	// API requests with the JSON null value. By default, fields with empty
1287	// values are omitted from API requests. However, any field with an
1288	// empty value appearing in NullFields will be sent to the server as
1289	// null. It is an error if a field in this list has a non-empty value.
1290	// This may be used to include null fields in Patch requests.
1291	NullFields []string `json:"-"`
1292}
1293
1294func (s *MaintenanceWindow) MarshalJSON() ([]byte, error) {
1295	type NoMethod MaintenanceWindow
1296	raw := NoMethod(*s)
1297	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1298}
1299
1300// MemcacheParameters: The unique ID associated with this set of
1301// parameters. Users can use this id to determine if the parameters
1302// associated with the instance differ from the parameters associated
1303// with the nodes. A discrepancy between parameter ids can inform users
1304// that they may need to take action to apply parameters on nodes.
1305type MemcacheParameters struct {
1306	// Id: Output only.
1307	Id string `json:"id,omitempty"`
1308
1309	// Params: User defined set of parameters to use in the memcached
1310	// process.
1311	Params map[string]string `json:"params,omitempty"`
1312
1313	// ForceSendFields is a list of field names (e.g. "Id") to
1314	// unconditionally include in API requests. By default, fields with
1315	// empty or default values are omitted from API requests. However, any
1316	// non-pointer, non-interface field appearing in ForceSendFields will be
1317	// sent to the server regardless of whether the field is empty or not.
1318	// This may be used to include empty fields in Patch requests.
1319	ForceSendFields []string `json:"-"`
1320
1321	// NullFields is a list of field names (e.g. "Id") to include in API
1322	// requests with the JSON null value. By default, fields with empty
1323	// values are omitted from API requests. However, any field with an
1324	// empty value appearing in NullFields will be sent to the server as
1325	// null. It is an error if a field in this list has a non-empty value.
1326	// This may be used to include null fields in Patch requests.
1327	NullFields []string `json:"-"`
1328}
1329
1330func (s *MemcacheParameters) MarshalJSON() ([]byte, error) {
1331	type NoMethod MemcacheParameters
1332	raw := NoMethod(*s)
1333	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1334}
1335
1336type Node struct {
1337	// Host: Output only. Hostname or IP address of the Memcached node used
1338	// by the clients to connect to the Memcached server on this node.
1339	Host string `json:"host,omitempty"`
1340
1341	// NodeId: Output only. Identifier of the Memcached node. The node id
1342	// does not include project or location like the Memcached instance
1343	// name.
1344	NodeId string `json:"nodeId,omitempty"`
1345
1346	// Parameters: User defined parameters currently applied to the node.
1347	Parameters *MemcacheParameters `json:"parameters,omitempty"`
1348
1349	// Port: Output only. The port number of the Memcached server on this
1350	// node.
1351	Port int64 `json:"port,omitempty"`
1352
1353	// State: Output only. Current state of the Memcached node.
1354	//
1355	// Possible values:
1356	//   "STATE_UNSPECIFIED" - Node state is not set.
1357	//   "CREATING" - Node is being created.
1358	//   "READY" - Node has been created and ready to be used.
1359	//   "DELETING" - Node is being deleted.
1360	//   "UPDATING" - Node is being updated.
1361	State string `json:"state,omitempty"`
1362
1363	// Zone: Output only. Location (GCP Zone) for the Memcached node.
1364	Zone string `json:"zone,omitempty"`
1365
1366	// ForceSendFields is a list of field names (e.g. "Host") to
1367	// unconditionally include in API requests. By default, fields with
1368	// empty or default values are omitted from API requests. However, any
1369	// non-pointer, non-interface field appearing in ForceSendFields will be
1370	// sent to the server regardless of whether the field is empty or not.
1371	// This may be used to include empty fields in Patch requests.
1372	ForceSendFields []string `json:"-"`
1373
1374	// NullFields is a list of field names (e.g. "Host") to include in API
1375	// requests with the JSON null value. By default, fields with empty
1376	// values are omitted from API requests. However, any field with an
1377	// empty value appearing in NullFields will be sent to the server as
1378	// null. It is an error if a field in this list has a non-empty value.
1379	// This may be used to include null fields in Patch requests.
1380	NullFields []string `json:"-"`
1381}
1382
1383func (s *Node) MarshalJSON() ([]byte, error) {
1384	type NoMethod Node
1385	raw := NoMethod(*s)
1386	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1387}
1388
1389// NodeConfig: Configuration for a Memcached Node.
1390type NodeConfig struct {
1391	// CpuCount: Required. Number of cpus per Memcached node.
1392	CpuCount int64 `json:"cpuCount,omitempty"`
1393
1394	// MemorySizeMb: Required. Memory size in MiB for each Memcached node.
1395	MemorySizeMb int64 `json:"memorySizeMb,omitempty"`
1396
1397	// ForceSendFields is a list of field names (e.g. "CpuCount") to
1398	// unconditionally include in API requests. By default, fields with
1399	// empty or default values are omitted from API requests. However, any
1400	// non-pointer, non-interface field appearing in ForceSendFields will be
1401	// sent to the server regardless of whether the field is empty or not.
1402	// This may be used to include empty fields in Patch requests.
1403	ForceSendFields []string `json:"-"`
1404
1405	// NullFields is a list of field names (e.g. "CpuCount") to include in
1406	// API requests with the JSON null value. By default, fields with empty
1407	// values are omitted from API requests. However, any field with an
1408	// empty value appearing in NullFields will be sent to the server as
1409	// null. It is an error if a field in this list has a non-empty value.
1410	// This may be used to include null fields in Patch requests.
1411	NullFields []string `json:"-"`
1412}
1413
1414func (s *NodeConfig) MarshalJSON() ([]byte, error) {
1415	type NoMethod NodeConfig
1416	raw := NoMethod(*s)
1417	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1418}
1419
1420// Operation: This resource represents a long-running operation that is
1421// the result of a network API call.
1422type Operation struct {
1423	// Done: If the value is `false`, it means the operation is still in
1424	// progress. If `true`, the operation is completed, and either `error`
1425	// or `response` is available.
1426	Done bool `json:"done,omitempty"`
1427
1428	// Error: The error result of the operation in case of failure or
1429	// cancellation.
1430	Error *Status `json:"error,omitempty"`
1431
1432	// Metadata: Service-specific metadata associated with the operation. It
1433	// typically contains progress information and common metadata such as
1434	// create time. Some services might not provide such metadata. Any
1435	// method that returns a long-running operation should document the
1436	// metadata type, if any.
1437	Metadata googleapi.RawMessage `json:"metadata,omitempty"`
1438
1439	// Name: The server-assigned name, which is only unique within the same
1440	// service that originally returns it. If you use the default HTTP
1441	// mapping, the `name` should be a resource name ending with
1442	// `operations/{unique_id}`.
1443	Name string `json:"name,omitempty"`
1444
1445	// Response: The normal response of the operation in case of success. If
1446	// the original method returns no data on success, such as `Delete`, the
1447	// response is `google.protobuf.Empty`. If the original method is
1448	// standard `Get`/`Create`/`Update`, the response should be the
1449	// resource. For other methods, the response should have the type
1450	// `XxxResponse`, where `Xxx` is the original method name. For example,
1451	// if the original method name is `TakeSnapshot()`, the inferred
1452	// response type is `TakeSnapshotResponse`.
1453	Response googleapi.RawMessage `json:"response,omitempty"`
1454
1455	// ServerResponse contains the HTTP response code and headers from the
1456	// server.
1457	googleapi.ServerResponse `json:"-"`
1458
1459	// ForceSendFields is a list of field names (e.g. "Done") to
1460	// unconditionally include in API requests. By default, fields with
1461	// empty or default values are omitted from API requests. However, any
1462	// non-pointer, non-interface field appearing in ForceSendFields will be
1463	// sent to the server regardless of whether the field is empty or not.
1464	// This may be used to include empty fields in Patch requests.
1465	ForceSendFields []string `json:"-"`
1466
1467	// NullFields is a list of field names (e.g. "Done") to include in API
1468	// requests with the JSON null value. By default, fields with empty
1469	// values are omitted from API requests. However, any field with an
1470	// empty value appearing in NullFields will be sent to the server as
1471	// null. It is an error if a field in this list has a non-empty value.
1472	// This may be used to include null fields in Patch requests.
1473	NullFields []string `json:"-"`
1474}
1475
1476func (s *Operation) MarshalJSON() ([]byte, error) {
1477	type NoMethod Operation
1478	raw := NoMethod(*s)
1479	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1480}
1481
1482// OperationMetadata: Represents the metadata of a long-running
1483// operation.
1484type OperationMetadata struct {
1485	// ApiVersion: Output only. API version used to start the operation.
1486	ApiVersion string `json:"apiVersion,omitempty"`
1487
1488	// CancelRequested: Output only. Identifies whether the user has
1489	// requested cancellation of the operation. Operations that have
1490	// successfully been cancelled have Operation.error value with a
1491	// google.rpc.Status.code of 1, corresponding to `Code.CANCELLED`.
1492	CancelRequested bool `json:"cancelRequested,omitempty"`
1493
1494	// CreateTime: Output only. Time when the operation was created.
1495	CreateTime string `json:"createTime,omitempty"`
1496
1497	// EndTime: Output only. Time when the operation finished running.
1498	EndTime string `json:"endTime,omitempty"`
1499
1500	// StatusDetail: Output only. Human-readable status of the operation, if
1501	// any.
1502	StatusDetail string `json:"statusDetail,omitempty"`
1503
1504	// Target: Output only. Server-defined resource path for the target of
1505	// the operation.
1506	Target string `json:"target,omitempty"`
1507
1508	// Verb: Output only. Name of the verb executed by the operation.
1509	Verb string `json:"verb,omitempty"`
1510
1511	// ForceSendFields is a list of field names (e.g. "ApiVersion") to
1512	// unconditionally include in API requests. By default, fields with
1513	// empty or default values are omitted from API requests. However, any
1514	// non-pointer, non-interface field appearing in ForceSendFields will be
1515	// sent to the server regardless of whether the field is empty or not.
1516	// This may be used to include empty fields in Patch requests.
1517	ForceSendFields []string `json:"-"`
1518
1519	// NullFields is a list of field names (e.g. "ApiVersion") to include in
1520	// API requests with the JSON null value. By default, fields with empty
1521	// values are omitted from API requests. However, any field with an
1522	// empty value appearing in NullFields will be sent to the server as
1523	// null. It is an error if a field in this list has a non-empty value.
1524	// This may be used to include null fields in Patch requests.
1525	NullFields []string `json:"-"`
1526}
1527
1528func (s *OperationMetadata) MarshalJSON() ([]byte, error) {
1529	type NoMethod OperationMetadata
1530	raw := NoMethod(*s)
1531	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1532}
1533
1534// Schedule: Configure the schedule.
1535type Schedule struct {
1536	// Day: Allows to define schedule that runs specified day of the week.
1537	//
1538	// Possible values:
1539	//   "DAY_OF_WEEK_UNSPECIFIED" - The day of the week is unspecified.
1540	//   "MONDAY" - Monday
1541	//   "TUESDAY" - Tuesday
1542	//   "WEDNESDAY" - Wednesday
1543	//   "THURSDAY" - Thursday
1544	//   "FRIDAY" - Friday
1545	//   "SATURDAY" - Saturday
1546	//   "SUNDAY" - Sunday
1547	Day string `json:"day,omitempty"`
1548
1549	// Duration: Output only. Duration of the time window, set by service
1550	// producer.
1551	Duration string `json:"duration,omitempty"`
1552
1553	// StartTime: Time within the window to start the operations.
1554	StartTime *TimeOfDay `json:"startTime,omitempty"`
1555
1556	// ForceSendFields is a list of field names (e.g. "Day") to
1557	// unconditionally include in API requests. By default, fields with
1558	// empty or default values are omitted from API requests. However, any
1559	// non-pointer, non-interface field appearing in ForceSendFields will be
1560	// sent to the server regardless of whether the field is empty or not.
1561	// This may be used to include empty fields in Patch requests.
1562	ForceSendFields []string `json:"-"`
1563
1564	// NullFields is a list of field names (e.g. "Day") to include in API
1565	// requests with the JSON null value. By default, fields with empty
1566	// values are omitted from API requests. However, any field with an
1567	// empty value appearing in NullFields will be sent to the server as
1568	// null. It is an error if a field in this list has a non-empty value.
1569	// This may be used to include null fields in Patch requests.
1570	NullFields []string `json:"-"`
1571}
1572
1573func (s *Schedule) MarshalJSON() ([]byte, error) {
1574	type NoMethod Schedule
1575	raw := NoMethod(*s)
1576	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1577}
1578
1579// Status: The `Status` type defines a logical error model that is
1580// suitable for different programming environments, including REST APIs
1581// and RPC APIs. It is used by gRPC (https://github.com/grpc). Each
1582// `Status` message contains three pieces of data: error code, error
1583// message, and error details. You can find out more about this error
1584// model and how to work with it in the API Design Guide
1585// (https://cloud.google.com/apis/design/errors).
1586type Status struct {
1587	// Code: The status code, which should be an enum value of
1588	// google.rpc.Code.
1589	Code int64 `json:"code,omitempty"`
1590
1591	// Details: A list of messages that carry the error details. There is a
1592	// common set of message types for APIs to use.
1593	Details []googleapi.RawMessage `json:"details,omitempty"`
1594
1595	// Message: A developer-facing error message, which should be in
1596	// English. Any user-facing error message should be localized and sent
1597	// in the google.rpc.Status.details field, or localized by the client.
1598	Message string `json:"message,omitempty"`
1599
1600	// ForceSendFields is a list of field names (e.g. "Code") to
1601	// unconditionally include in API requests. By default, fields with
1602	// empty or default values are omitted from API requests. However, any
1603	// non-pointer, non-interface field appearing in ForceSendFields will be
1604	// sent to the server regardless of whether the field is empty or not.
1605	// This may be used to include empty fields in Patch requests.
1606	ForceSendFields []string `json:"-"`
1607
1608	// NullFields is a list of field names (e.g. "Code") to include in API
1609	// requests with the JSON null value. By default, fields with empty
1610	// values are omitted from API requests. However, any field with an
1611	// empty value appearing in NullFields will be sent to the server as
1612	// null. It is an error if a field in this list has a non-empty value.
1613	// This may be used to include null fields in Patch requests.
1614	NullFields []string `json:"-"`
1615}
1616
1617func (s *Status) MarshalJSON() ([]byte, error) {
1618	type NoMethod Status
1619	raw := NoMethod(*s)
1620	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1621}
1622
1623// TimeOfDay: Represents a time of day. The date and time zone are
1624// either not significant or are specified elsewhere. An API may choose
1625// to allow leap seconds. Related types are google.type.Date and
1626// `google.protobuf.Timestamp`.
1627type TimeOfDay struct {
1628	// Hours: Hours of day in 24 hour format. Should be from 0 to 23. An API
1629	// may choose to allow the value "24:00:00" for scenarios like business
1630	// closing time.
1631	Hours int64 `json:"hours,omitempty"`
1632
1633	// Minutes: Minutes of hour of day. Must be from 0 to 59.
1634	Minutes int64 `json:"minutes,omitempty"`
1635
1636	// Nanos: Fractions of seconds in nanoseconds. Must be from 0 to
1637	// 999,999,999.
1638	Nanos int64 `json:"nanos,omitempty"`
1639
1640	// Seconds: Seconds of minutes of the time. Must normally be from 0 to
1641	// 59. An API may allow the value 60 if it allows leap-seconds.
1642	Seconds int64 `json:"seconds,omitempty"`
1643
1644	// ForceSendFields is a list of field names (e.g. "Hours") to
1645	// unconditionally include in API requests. By default, fields with
1646	// empty or default values are omitted from API requests. However, any
1647	// non-pointer, non-interface field appearing in ForceSendFields will be
1648	// sent to the server regardless of whether the field is empty or not.
1649	// This may be used to include empty fields in Patch requests.
1650	ForceSendFields []string `json:"-"`
1651
1652	// NullFields is a list of field names (e.g. "Hours") to include in API
1653	// requests with the JSON null value. By default, fields with empty
1654	// values are omitted from API requests. However, any field with an
1655	// empty value appearing in NullFields will be sent to the server as
1656	// null. It is an error if a field in this list has a non-empty value.
1657	// This may be used to include null fields in Patch requests.
1658	NullFields []string `json:"-"`
1659}
1660
1661func (s *TimeOfDay) MarshalJSON() ([]byte, error) {
1662	type NoMethod TimeOfDay
1663	raw := NoMethod(*s)
1664	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1665}
1666
1667// UpdateParametersRequest: Request for UpdateParameters.
1668type UpdateParametersRequest struct {
1669	// Parameters: The parameters to apply to the instance.
1670	Parameters *MemcacheParameters `json:"parameters,omitempty"`
1671
1672	// UpdateMask: Required. Mask of fields to update.
1673	UpdateMask string `json:"updateMask,omitempty"`
1674
1675	// ForceSendFields is a list of field names (e.g. "Parameters") to
1676	// unconditionally include in API requests. By default, fields with
1677	// empty or default values are omitted from API requests. However, any
1678	// non-pointer, non-interface field appearing in ForceSendFields will be
1679	// sent to the server regardless of whether the field is empty or not.
1680	// This may be used to include empty fields in Patch requests.
1681	ForceSendFields []string `json:"-"`
1682
1683	// NullFields is a list of field names (e.g. "Parameters") to include in
1684	// API requests with the JSON null value. By default, fields with empty
1685	// values are omitted from API requests. However, any field with an
1686	// empty value appearing in NullFields will be sent to the server as
1687	// null. It is an error if a field in this list has a non-empty value.
1688	// This may be used to include null fields in Patch requests.
1689	NullFields []string `json:"-"`
1690}
1691
1692func (s *UpdateParametersRequest) MarshalJSON() ([]byte, error) {
1693	type NoMethod UpdateParametersRequest
1694	raw := NoMethod(*s)
1695	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1696}
1697
1698// UpdatePolicy: Maintenance policy applicable to instance updates.
1699type UpdatePolicy struct {
1700	// Channel: Optional. Relative scheduling channel applied to resource.
1701	//
1702	// Possible values:
1703	//   "UPDATE_CHANNEL_UNSPECIFIED" - Unspecified channel.
1704	//   "EARLIER" - Early channel within a customer project.
1705	//   "LATER" - Later channel within a customer project.
1706	Channel string `json:"channel,omitempty"`
1707
1708	// DenyMaintenancePeriods: Deny Maintenance Period that is applied to
1709	// resource to indicate when maintenance is forbidden. User can specify
1710	// zero or more non-overlapping deny periods. Maximum number of
1711	// deny_maintenance_periods expected is one.
1712	DenyMaintenancePeriods []*DenyMaintenancePeriod `json:"denyMaintenancePeriods,omitempty"`
1713
1714	// Window: Optional. Maintenance window that is applied to resources
1715	// covered by this policy.
1716	Window *MaintenanceWindow `json:"window,omitempty"`
1717
1718	// ForceSendFields is a list of field names (e.g. "Channel") to
1719	// unconditionally include in API requests. By default, fields with
1720	// empty or default values are omitted from API requests. However, any
1721	// non-pointer, non-interface field appearing in ForceSendFields will be
1722	// sent to the server regardless of whether the field is empty or not.
1723	// This may be used to include empty fields in Patch requests.
1724	ForceSendFields []string `json:"-"`
1725
1726	// NullFields is a list of field names (e.g. "Channel") to include in
1727	// API requests with the JSON null value. By default, fields with empty
1728	// values are omitted from API requests. However, any field with an
1729	// empty value appearing in NullFields will be sent to the server as
1730	// null. It is an error if a field in this list has a non-empty value.
1731	// This may be used to include null fields in Patch requests.
1732	NullFields []string `json:"-"`
1733}
1734
1735func (s *UpdatePolicy) MarshalJSON() ([]byte, error) {
1736	type NoMethod UpdatePolicy
1737	raw := NoMethod(*s)
1738	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1739}
1740
1741// WeeklyCycle: Time window specified for weekly operations.
1742type WeeklyCycle struct {
1743	// Schedule: User can specify multiple windows in a week. Minimum of 1
1744	// window.
1745	Schedule []*Schedule `json:"schedule,omitempty"`
1746
1747	// ForceSendFields is a list of field names (e.g. "Schedule") to
1748	// unconditionally include in API requests. By default, fields with
1749	// empty or default values are omitted from API requests. However, any
1750	// non-pointer, non-interface field appearing in ForceSendFields will be
1751	// sent to the server regardless of whether the field is empty or not.
1752	// This may be used to include empty fields in Patch requests.
1753	ForceSendFields []string `json:"-"`
1754
1755	// NullFields is a list of field names (e.g. "Schedule") to include in
1756	// API requests with the JSON null value. By default, fields with empty
1757	// values are omitted from API requests. However, any field with an
1758	// empty value appearing in NullFields will be sent to the server as
1759	// null. It is an error if a field in this list has a non-empty value.
1760	// This may be used to include null fields in Patch requests.
1761	NullFields []string `json:"-"`
1762}
1763
1764func (s *WeeklyCycle) MarshalJSON() ([]byte, error) {
1765	type NoMethod WeeklyCycle
1766	raw := NoMethod(*s)
1767	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1768}
1769
1770type ZoneMetadata struct {
1771}
1772
1773// method id "memcache.projects.locations.get":
1774
1775type ProjectsLocationsGetCall struct {
1776	s            *Service
1777	name         string
1778	urlParams_   gensupport.URLParams
1779	ifNoneMatch_ string
1780	ctx_         context.Context
1781	header_      http.Header
1782}
1783
1784// Get: Gets information about a location.
1785//
1786// - name: Resource name for the location.
1787func (r *ProjectsLocationsService) Get(name string) *ProjectsLocationsGetCall {
1788	c := &ProjectsLocationsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
1789	c.name = name
1790	return c
1791}
1792
1793// Fields allows partial responses to be retrieved. See
1794// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
1795// for more information.
1796func (c *ProjectsLocationsGetCall) Fields(s ...googleapi.Field) *ProjectsLocationsGetCall {
1797	c.urlParams_.Set("fields", googleapi.CombineFields(s))
1798	return c
1799}
1800
1801// IfNoneMatch sets the optional parameter which makes the operation
1802// fail if the object's ETag matches the given value. This is useful for
1803// getting updates only after the object has changed since the last
1804// request. Use googleapi.IsNotModified to check whether the response
1805// error from Do is the result of In-None-Match.
1806func (c *ProjectsLocationsGetCall) IfNoneMatch(entityTag string) *ProjectsLocationsGetCall {
1807	c.ifNoneMatch_ = entityTag
1808	return c
1809}
1810
1811// Context sets the context to be used in this call's Do method. Any
1812// pending HTTP request will be aborted if the provided context is
1813// canceled.
1814func (c *ProjectsLocationsGetCall) Context(ctx context.Context) *ProjectsLocationsGetCall {
1815	c.ctx_ = ctx
1816	return c
1817}
1818
1819// Header returns an http.Header that can be modified by the caller to
1820// add HTTP headers to the request.
1821func (c *ProjectsLocationsGetCall) Header() http.Header {
1822	if c.header_ == nil {
1823		c.header_ = make(http.Header)
1824	}
1825	return c.header_
1826}
1827
1828func (c *ProjectsLocationsGetCall) doRequest(alt string) (*http.Response, error) {
1829	reqHeaders := make(http.Header)
1830	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210915")
1831	for k, v := range c.header_ {
1832		reqHeaders[k] = v
1833	}
1834	reqHeaders.Set("User-Agent", c.s.userAgent())
1835	if c.ifNoneMatch_ != "" {
1836		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
1837	}
1838	var body io.Reader = nil
1839	c.urlParams_.Set("alt", alt)
1840	c.urlParams_.Set("prettyPrint", "false")
1841	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/{+name}")
1842	urls += "?" + c.urlParams_.Encode()
1843	req, err := http.NewRequest("GET", urls, body)
1844	if err != nil {
1845		return nil, err
1846	}
1847	req.Header = reqHeaders
1848	googleapi.Expand(req.URL, map[string]string{
1849		"name": c.name,
1850	})
1851	return gensupport.SendRequest(c.ctx_, c.s.client, req)
1852}
1853
1854// Do executes the "memcache.projects.locations.get" call.
1855// Exactly one of *Location or error will be non-nil. Any non-2xx status
1856// code is an error. Response headers are in either
1857// *Location.ServerResponse.Header or (if a response was returned at
1858// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
1859// to check whether the returned error was because
1860// http.StatusNotModified was returned.
1861func (c *ProjectsLocationsGetCall) Do(opts ...googleapi.CallOption) (*Location, error) {
1862	gensupport.SetOptions(c.urlParams_, opts...)
1863	res, err := c.doRequest("json")
1864	if res != nil && res.StatusCode == http.StatusNotModified {
1865		if res.Body != nil {
1866			res.Body.Close()
1867		}
1868		return nil, &googleapi.Error{
1869			Code:   res.StatusCode,
1870			Header: res.Header,
1871		}
1872	}
1873	if err != nil {
1874		return nil, err
1875	}
1876	defer googleapi.CloseBody(res)
1877	if err := googleapi.CheckResponse(res); err != nil {
1878		return nil, err
1879	}
1880	ret := &Location{
1881		ServerResponse: googleapi.ServerResponse{
1882			Header:         res.Header,
1883			HTTPStatusCode: res.StatusCode,
1884		},
1885	}
1886	target := &ret
1887	if err := gensupport.DecodeResponse(target, res); err != nil {
1888		return nil, err
1889	}
1890	return ret, nil
1891	// {
1892	//   "description": "Gets information about a location.",
1893	//   "flatPath": "v1/projects/{projectsId}/locations/{locationsId}",
1894	//   "httpMethod": "GET",
1895	//   "id": "memcache.projects.locations.get",
1896	//   "parameterOrder": [
1897	//     "name"
1898	//   ],
1899	//   "parameters": {
1900	//     "name": {
1901	//       "description": "Resource name for the location.",
1902	//       "location": "path",
1903	//       "pattern": "^projects/[^/]+/locations/[^/]+$",
1904	//       "required": true,
1905	//       "type": "string"
1906	//     }
1907	//   },
1908	//   "path": "v1/{+name}",
1909	//   "response": {
1910	//     "$ref": "Location"
1911	//   },
1912	//   "scopes": [
1913	//     "https://www.googleapis.com/auth/cloud-platform"
1914	//   ]
1915	// }
1916
1917}
1918
1919// method id "memcache.projects.locations.list":
1920
1921type ProjectsLocationsListCall struct {
1922	s            *Service
1923	name         string
1924	urlParams_   gensupport.URLParams
1925	ifNoneMatch_ string
1926	ctx_         context.Context
1927	header_      http.Header
1928}
1929
1930// List: Lists information about the supported locations for this
1931// service.
1932//
1933// - name: The resource that owns the locations collection, if
1934//   applicable.
1935func (r *ProjectsLocationsService) List(name string) *ProjectsLocationsListCall {
1936	c := &ProjectsLocationsListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
1937	c.name = name
1938	return c
1939}
1940
1941// Filter sets the optional parameter "filter": A filter to narrow down
1942// results to a preferred subset. The filtering language accepts strings
1943// like "displayName=tokyo", and is documented in more detail in AIP-160
1944// (https://google.aip.dev/160).
1945func (c *ProjectsLocationsListCall) Filter(filter string) *ProjectsLocationsListCall {
1946	c.urlParams_.Set("filter", filter)
1947	return c
1948}
1949
1950// PageSize sets the optional parameter "pageSize": The maximum number
1951// of results to return. If not set, the service selects a default.
1952func (c *ProjectsLocationsListCall) PageSize(pageSize int64) *ProjectsLocationsListCall {
1953	c.urlParams_.Set("pageSize", fmt.Sprint(pageSize))
1954	return c
1955}
1956
1957// PageToken sets the optional parameter "pageToken": A page token
1958// received from the `next_page_token` field in the response. Send that
1959// page token to receive the subsequent page.
1960func (c *ProjectsLocationsListCall) PageToken(pageToken string) *ProjectsLocationsListCall {
1961	c.urlParams_.Set("pageToken", pageToken)
1962	return c
1963}
1964
1965// Fields allows partial responses to be retrieved. See
1966// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
1967// for more information.
1968func (c *ProjectsLocationsListCall) Fields(s ...googleapi.Field) *ProjectsLocationsListCall {
1969	c.urlParams_.Set("fields", googleapi.CombineFields(s))
1970	return c
1971}
1972
1973// IfNoneMatch sets the optional parameter which makes the operation
1974// fail if the object's ETag matches the given value. This is useful for
1975// getting updates only after the object has changed since the last
1976// request. Use googleapi.IsNotModified to check whether the response
1977// error from Do is the result of In-None-Match.
1978func (c *ProjectsLocationsListCall) IfNoneMatch(entityTag string) *ProjectsLocationsListCall {
1979	c.ifNoneMatch_ = entityTag
1980	return c
1981}
1982
1983// Context sets the context to be used in this call's Do method. Any
1984// pending HTTP request will be aborted if the provided context is
1985// canceled.
1986func (c *ProjectsLocationsListCall) Context(ctx context.Context) *ProjectsLocationsListCall {
1987	c.ctx_ = ctx
1988	return c
1989}
1990
1991// Header returns an http.Header that can be modified by the caller to
1992// add HTTP headers to the request.
1993func (c *ProjectsLocationsListCall) Header() http.Header {
1994	if c.header_ == nil {
1995		c.header_ = make(http.Header)
1996	}
1997	return c.header_
1998}
1999
2000func (c *ProjectsLocationsListCall) doRequest(alt string) (*http.Response, error) {
2001	reqHeaders := make(http.Header)
2002	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210915")
2003	for k, v := range c.header_ {
2004		reqHeaders[k] = v
2005	}
2006	reqHeaders.Set("User-Agent", c.s.userAgent())
2007	if c.ifNoneMatch_ != "" {
2008		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
2009	}
2010	var body io.Reader = nil
2011	c.urlParams_.Set("alt", alt)
2012	c.urlParams_.Set("prettyPrint", "false")
2013	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/{+name}/locations")
2014	urls += "?" + c.urlParams_.Encode()
2015	req, err := http.NewRequest("GET", urls, body)
2016	if err != nil {
2017		return nil, err
2018	}
2019	req.Header = reqHeaders
2020	googleapi.Expand(req.URL, map[string]string{
2021		"name": c.name,
2022	})
2023	return gensupport.SendRequest(c.ctx_, c.s.client, req)
2024}
2025
2026// Do executes the "memcache.projects.locations.list" call.
2027// Exactly one of *ListLocationsResponse or error will be non-nil. Any
2028// non-2xx status code is an error. Response headers are in either
2029// *ListLocationsResponse.ServerResponse.Header or (if a response was
2030// returned at all) in error.(*googleapi.Error).Header. Use
2031// googleapi.IsNotModified to check whether the returned error was
2032// because http.StatusNotModified was returned.
2033func (c *ProjectsLocationsListCall) Do(opts ...googleapi.CallOption) (*ListLocationsResponse, error) {
2034	gensupport.SetOptions(c.urlParams_, opts...)
2035	res, err := c.doRequest("json")
2036	if res != nil && res.StatusCode == http.StatusNotModified {
2037		if res.Body != nil {
2038			res.Body.Close()
2039		}
2040		return nil, &googleapi.Error{
2041			Code:   res.StatusCode,
2042			Header: res.Header,
2043		}
2044	}
2045	if err != nil {
2046		return nil, err
2047	}
2048	defer googleapi.CloseBody(res)
2049	if err := googleapi.CheckResponse(res); err != nil {
2050		return nil, err
2051	}
2052	ret := &ListLocationsResponse{
2053		ServerResponse: googleapi.ServerResponse{
2054			Header:         res.Header,
2055			HTTPStatusCode: res.StatusCode,
2056		},
2057	}
2058	target := &ret
2059	if err := gensupport.DecodeResponse(target, res); err != nil {
2060		return nil, err
2061	}
2062	return ret, nil
2063	// {
2064	//   "description": "Lists information about the supported locations for this service.",
2065	//   "flatPath": "v1/projects/{projectsId}/locations",
2066	//   "httpMethod": "GET",
2067	//   "id": "memcache.projects.locations.list",
2068	//   "parameterOrder": [
2069	//     "name"
2070	//   ],
2071	//   "parameters": {
2072	//     "filter": {
2073	//       "description": "A filter to narrow down results to a preferred subset. The filtering language accepts strings like \"displayName=tokyo\", and is documented in more detail in [AIP-160](https://google.aip.dev/160).",
2074	//       "location": "query",
2075	//       "type": "string"
2076	//     },
2077	//     "name": {
2078	//       "description": "The resource that owns the locations collection, if applicable.",
2079	//       "location": "path",
2080	//       "pattern": "^projects/[^/]+$",
2081	//       "required": true,
2082	//       "type": "string"
2083	//     },
2084	//     "pageSize": {
2085	//       "description": "The maximum number of results to return. If not set, the service selects a default.",
2086	//       "format": "int32",
2087	//       "location": "query",
2088	//       "type": "integer"
2089	//     },
2090	//     "pageToken": {
2091	//       "description": "A page token received from the `next_page_token` field in the response. Send that page token to receive the subsequent page.",
2092	//       "location": "query",
2093	//       "type": "string"
2094	//     }
2095	//   },
2096	//   "path": "v1/{+name}/locations",
2097	//   "response": {
2098	//     "$ref": "ListLocationsResponse"
2099	//   },
2100	//   "scopes": [
2101	//     "https://www.googleapis.com/auth/cloud-platform"
2102	//   ]
2103	// }
2104
2105}
2106
2107// Pages invokes f for each page of results.
2108// A non-nil error returned from f will halt the iteration.
2109// The provided context supersedes any context provided to the Context method.
2110func (c *ProjectsLocationsListCall) Pages(ctx context.Context, f func(*ListLocationsResponse) error) error {
2111	c.ctx_ = ctx
2112	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
2113	for {
2114		x, err := c.Do()
2115		if err != nil {
2116			return err
2117		}
2118		if err := f(x); err != nil {
2119			return err
2120		}
2121		if x.NextPageToken == "" {
2122			return nil
2123		}
2124		c.PageToken(x.NextPageToken)
2125	}
2126}
2127
2128// method id "memcache.projects.locations.instances.applyParameters":
2129
2130type ProjectsLocationsInstancesApplyParametersCall struct {
2131	s                      *Service
2132	name                   string
2133	applyparametersrequest *ApplyParametersRequest
2134	urlParams_             gensupport.URLParams
2135	ctx_                   context.Context
2136	header_                http.Header
2137}
2138
2139// ApplyParameters: `ApplyParameters` restarts the set of specified
2140// nodes in order to update them to the current set of parameters for
2141// the Memcached Instance.
2142//
2143// - name: Resource name of the Memcached instance for which parameter
2144//   group updates should be applied.
2145func (r *ProjectsLocationsInstancesService) ApplyParameters(name string, applyparametersrequest *ApplyParametersRequest) *ProjectsLocationsInstancesApplyParametersCall {
2146	c := &ProjectsLocationsInstancesApplyParametersCall{s: r.s, urlParams_: make(gensupport.URLParams)}
2147	c.name = name
2148	c.applyparametersrequest = applyparametersrequest
2149	return c
2150}
2151
2152// Fields allows partial responses to be retrieved. See
2153// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
2154// for more information.
2155func (c *ProjectsLocationsInstancesApplyParametersCall) Fields(s ...googleapi.Field) *ProjectsLocationsInstancesApplyParametersCall {
2156	c.urlParams_.Set("fields", googleapi.CombineFields(s))
2157	return c
2158}
2159
2160// Context sets the context to be used in this call's Do method. Any
2161// pending HTTP request will be aborted if the provided context is
2162// canceled.
2163func (c *ProjectsLocationsInstancesApplyParametersCall) Context(ctx context.Context) *ProjectsLocationsInstancesApplyParametersCall {
2164	c.ctx_ = ctx
2165	return c
2166}
2167
2168// Header returns an http.Header that can be modified by the caller to
2169// add HTTP headers to the request.
2170func (c *ProjectsLocationsInstancesApplyParametersCall) Header() http.Header {
2171	if c.header_ == nil {
2172		c.header_ = make(http.Header)
2173	}
2174	return c.header_
2175}
2176
2177func (c *ProjectsLocationsInstancesApplyParametersCall) doRequest(alt string) (*http.Response, error) {
2178	reqHeaders := make(http.Header)
2179	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210915")
2180	for k, v := range c.header_ {
2181		reqHeaders[k] = v
2182	}
2183	reqHeaders.Set("User-Agent", c.s.userAgent())
2184	var body io.Reader = nil
2185	body, err := googleapi.WithoutDataWrapper.JSONReader(c.applyparametersrequest)
2186	if err != nil {
2187		return nil, err
2188	}
2189	reqHeaders.Set("Content-Type", "application/json")
2190	c.urlParams_.Set("alt", alt)
2191	c.urlParams_.Set("prettyPrint", "false")
2192	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/{+name}:applyParameters")
2193	urls += "?" + c.urlParams_.Encode()
2194	req, err := http.NewRequest("POST", urls, body)
2195	if err != nil {
2196		return nil, err
2197	}
2198	req.Header = reqHeaders
2199	googleapi.Expand(req.URL, map[string]string{
2200		"name": c.name,
2201	})
2202	return gensupport.SendRequest(c.ctx_, c.s.client, req)
2203}
2204
2205// Do executes the "memcache.projects.locations.instances.applyParameters" call.
2206// Exactly one of *Operation or error will be non-nil. Any non-2xx
2207// status code is an error. Response headers are in either
2208// *Operation.ServerResponse.Header or (if a response was returned at
2209// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
2210// to check whether the returned error was because
2211// http.StatusNotModified was returned.
2212func (c *ProjectsLocationsInstancesApplyParametersCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
2213	gensupport.SetOptions(c.urlParams_, opts...)
2214	res, err := c.doRequest("json")
2215	if res != nil && res.StatusCode == http.StatusNotModified {
2216		if res.Body != nil {
2217			res.Body.Close()
2218		}
2219		return nil, &googleapi.Error{
2220			Code:   res.StatusCode,
2221			Header: res.Header,
2222		}
2223	}
2224	if err != nil {
2225		return nil, err
2226	}
2227	defer googleapi.CloseBody(res)
2228	if err := googleapi.CheckResponse(res); err != nil {
2229		return nil, err
2230	}
2231	ret := &Operation{
2232		ServerResponse: googleapi.ServerResponse{
2233			Header:         res.Header,
2234			HTTPStatusCode: res.StatusCode,
2235		},
2236	}
2237	target := &ret
2238	if err := gensupport.DecodeResponse(target, res); err != nil {
2239		return nil, err
2240	}
2241	return ret, nil
2242	// {
2243	//   "description": "`ApplyParameters` restarts the set of specified nodes in order to update them to the current set of parameters for the Memcached Instance.",
2244	//   "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/instances/{instancesId}:applyParameters",
2245	//   "httpMethod": "POST",
2246	//   "id": "memcache.projects.locations.instances.applyParameters",
2247	//   "parameterOrder": [
2248	//     "name"
2249	//   ],
2250	//   "parameters": {
2251	//     "name": {
2252	//       "description": "Required. Resource name of the Memcached instance for which parameter group updates should be applied.",
2253	//       "location": "path",
2254	//       "pattern": "^projects/[^/]+/locations/[^/]+/instances/[^/]+$",
2255	//       "required": true,
2256	//       "type": "string"
2257	//     }
2258	//   },
2259	//   "path": "v1/{+name}:applyParameters",
2260	//   "request": {
2261	//     "$ref": "ApplyParametersRequest"
2262	//   },
2263	//   "response": {
2264	//     "$ref": "Operation"
2265	//   },
2266	//   "scopes": [
2267	//     "https://www.googleapis.com/auth/cloud-platform"
2268	//   ]
2269	// }
2270
2271}
2272
2273// method id "memcache.projects.locations.instances.create":
2274
2275type ProjectsLocationsInstancesCreateCall struct {
2276	s          *Service
2277	parent     string
2278	instance   *Instance
2279	urlParams_ gensupport.URLParams
2280	ctx_       context.Context
2281	header_    http.Header
2282}
2283
2284// Create: Creates a new Instance in a given location.
2285//
2286// - parent: The resource name of the instance location using the form:
2287//   `projects/{project_id}/locations/{location_id}` where `location_id`
2288//   refers to a GCP region.
2289func (r *ProjectsLocationsInstancesService) Create(parent string, instance *Instance) *ProjectsLocationsInstancesCreateCall {
2290	c := &ProjectsLocationsInstancesCreateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
2291	c.parent = parent
2292	c.instance = instance
2293	return c
2294}
2295
2296// InstanceId sets the optional parameter "instanceId": Required. The
2297// logical name of the Memcached instance in the user project with the
2298// following restrictions: * Must contain only lowercase letters,
2299// numbers, and hyphens. * Must start with a letter. * Must be between
2300// 1-40 characters. * Must end with a number or a letter. * Must be
2301// unique within the user project / location. If any of the above are
2302// not met, the API raises an invalid argument error.
2303func (c *ProjectsLocationsInstancesCreateCall) InstanceId(instanceId string) *ProjectsLocationsInstancesCreateCall {
2304	c.urlParams_.Set("instanceId", instanceId)
2305	return c
2306}
2307
2308// Fields allows partial responses to be retrieved. See
2309// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
2310// for more information.
2311func (c *ProjectsLocationsInstancesCreateCall) Fields(s ...googleapi.Field) *ProjectsLocationsInstancesCreateCall {
2312	c.urlParams_.Set("fields", googleapi.CombineFields(s))
2313	return c
2314}
2315
2316// Context sets the context to be used in this call's Do method. Any
2317// pending HTTP request will be aborted if the provided context is
2318// canceled.
2319func (c *ProjectsLocationsInstancesCreateCall) Context(ctx context.Context) *ProjectsLocationsInstancesCreateCall {
2320	c.ctx_ = ctx
2321	return c
2322}
2323
2324// Header returns an http.Header that can be modified by the caller to
2325// add HTTP headers to the request.
2326func (c *ProjectsLocationsInstancesCreateCall) Header() http.Header {
2327	if c.header_ == nil {
2328		c.header_ = make(http.Header)
2329	}
2330	return c.header_
2331}
2332
2333func (c *ProjectsLocationsInstancesCreateCall) doRequest(alt string) (*http.Response, error) {
2334	reqHeaders := make(http.Header)
2335	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210915")
2336	for k, v := range c.header_ {
2337		reqHeaders[k] = v
2338	}
2339	reqHeaders.Set("User-Agent", c.s.userAgent())
2340	var body io.Reader = nil
2341	body, err := googleapi.WithoutDataWrapper.JSONReader(c.instance)
2342	if err != nil {
2343		return nil, err
2344	}
2345	reqHeaders.Set("Content-Type", "application/json")
2346	c.urlParams_.Set("alt", alt)
2347	c.urlParams_.Set("prettyPrint", "false")
2348	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/{+parent}/instances")
2349	urls += "?" + c.urlParams_.Encode()
2350	req, err := http.NewRequest("POST", urls, body)
2351	if err != nil {
2352		return nil, err
2353	}
2354	req.Header = reqHeaders
2355	googleapi.Expand(req.URL, map[string]string{
2356		"parent": c.parent,
2357	})
2358	return gensupport.SendRequest(c.ctx_, c.s.client, req)
2359}
2360
2361// Do executes the "memcache.projects.locations.instances.create" call.
2362// Exactly one of *Operation or error will be non-nil. Any non-2xx
2363// status code is an error. Response headers are in either
2364// *Operation.ServerResponse.Header or (if a response was returned at
2365// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
2366// to check whether the returned error was because
2367// http.StatusNotModified was returned.
2368func (c *ProjectsLocationsInstancesCreateCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
2369	gensupport.SetOptions(c.urlParams_, opts...)
2370	res, err := c.doRequest("json")
2371	if res != nil && res.StatusCode == http.StatusNotModified {
2372		if res.Body != nil {
2373			res.Body.Close()
2374		}
2375		return nil, &googleapi.Error{
2376			Code:   res.StatusCode,
2377			Header: res.Header,
2378		}
2379	}
2380	if err != nil {
2381		return nil, err
2382	}
2383	defer googleapi.CloseBody(res)
2384	if err := googleapi.CheckResponse(res); err != nil {
2385		return nil, err
2386	}
2387	ret := &Operation{
2388		ServerResponse: googleapi.ServerResponse{
2389			Header:         res.Header,
2390			HTTPStatusCode: res.StatusCode,
2391		},
2392	}
2393	target := &ret
2394	if err := gensupport.DecodeResponse(target, res); err != nil {
2395		return nil, err
2396	}
2397	return ret, nil
2398	// {
2399	//   "description": "Creates a new Instance in a given location.",
2400	//   "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/instances",
2401	//   "httpMethod": "POST",
2402	//   "id": "memcache.projects.locations.instances.create",
2403	//   "parameterOrder": [
2404	//     "parent"
2405	//   ],
2406	//   "parameters": {
2407	//     "instanceId": {
2408	//       "description": "Required. The logical name of the Memcached instance in the user project with the following restrictions: * Must contain only lowercase letters, numbers, and hyphens. * Must start with a letter. * Must be between 1-40 characters. * Must end with a number or a letter. * Must be unique within the user project / location. If any of the above are not met, the API raises an invalid argument error.",
2409	//       "location": "query",
2410	//       "type": "string"
2411	//     },
2412	//     "parent": {
2413	//       "description": "Required. The resource name of the instance location using the form: `projects/{project_id}/locations/{location_id}` where `location_id` refers to a GCP region",
2414	//       "location": "path",
2415	//       "pattern": "^projects/[^/]+/locations/[^/]+$",
2416	//       "required": true,
2417	//       "type": "string"
2418	//     }
2419	//   },
2420	//   "path": "v1/{+parent}/instances",
2421	//   "request": {
2422	//     "$ref": "Instance"
2423	//   },
2424	//   "response": {
2425	//     "$ref": "Operation"
2426	//   },
2427	//   "scopes": [
2428	//     "https://www.googleapis.com/auth/cloud-platform"
2429	//   ]
2430	// }
2431
2432}
2433
2434// method id "memcache.projects.locations.instances.delete":
2435
2436type ProjectsLocationsInstancesDeleteCall struct {
2437	s          *Service
2438	name       string
2439	urlParams_ gensupport.URLParams
2440	ctx_       context.Context
2441	header_    http.Header
2442}
2443
2444// Delete: Deletes a single Instance.
2445//
2446// - name: Memcached instance resource name in the format:
2447//   `projects/{project_id}/locations/{location_id}/instances/{instance_i
2448//   d}` where `location_id` refers to a GCP region.
2449func (r *ProjectsLocationsInstancesService) Delete(name string) *ProjectsLocationsInstancesDeleteCall {
2450	c := &ProjectsLocationsInstancesDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
2451	c.name = name
2452	return c
2453}
2454
2455// Fields allows partial responses to be retrieved. See
2456// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
2457// for more information.
2458func (c *ProjectsLocationsInstancesDeleteCall) Fields(s ...googleapi.Field) *ProjectsLocationsInstancesDeleteCall {
2459	c.urlParams_.Set("fields", googleapi.CombineFields(s))
2460	return c
2461}
2462
2463// Context sets the context to be used in this call's Do method. Any
2464// pending HTTP request will be aborted if the provided context is
2465// canceled.
2466func (c *ProjectsLocationsInstancesDeleteCall) Context(ctx context.Context) *ProjectsLocationsInstancesDeleteCall {
2467	c.ctx_ = ctx
2468	return c
2469}
2470
2471// Header returns an http.Header that can be modified by the caller to
2472// add HTTP headers to the request.
2473func (c *ProjectsLocationsInstancesDeleteCall) Header() http.Header {
2474	if c.header_ == nil {
2475		c.header_ = make(http.Header)
2476	}
2477	return c.header_
2478}
2479
2480func (c *ProjectsLocationsInstancesDeleteCall) doRequest(alt string) (*http.Response, error) {
2481	reqHeaders := make(http.Header)
2482	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210915")
2483	for k, v := range c.header_ {
2484		reqHeaders[k] = v
2485	}
2486	reqHeaders.Set("User-Agent", c.s.userAgent())
2487	var body io.Reader = nil
2488	c.urlParams_.Set("alt", alt)
2489	c.urlParams_.Set("prettyPrint", "false")
2490	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/{+name}")
2491	urls += "?" + c.urlParams_.Encode()
2492	req, err := http.NewRequest("DELETE", urls, body)
2493	if err != nil {
2494		return nil, err
2495	}
2496	req.Header = reqHeaders
2497	googleapi.Expand(req.URL, map[string]string{
2498		"name": c.name,
2499	})
2500	return gensupport.SendRequest(c.ctx_, c.s.client, req)
2501}
2502
2503// Do executes the "memcache.projects.locations.instances.delete" call.
2504// Exactly one of *Operation or error will be non-nil. Any non-2xx
2505// status code is an error. Response headers are in either
2506// *Operation.ServerResponse.Header or (if a response was returned at
2507// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
2508// to check whether the returned error was because
2509// http.StatusNotModified was returned.
2510func (c *ProjectsLocationsInstancesDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
2511	gensupport.SetOptions(c.urlParams_, opts...)
2512	res, err := c.doRequest("json")
2513	if res != nil && res.StatusCode == http.StatusNotModified {
2514		if res.Body != nil {
2515			res.Body.Close()
2516		}
2517		return nil, &googleapi.Error{
2518			Code:   res.StatusCode,
2519			Header: res.Header,
2520		}
2521	}
2522	if err != nil {
2523		return nil, err
2524	}
2525	defer googleapi.CloseBody(res)
2526	if err := googleapi.CheckResponse(res); err != nil {
2527		return nil, err
2528	}
2529	ret := &Operation{
2530		ServerResponse: googleapi.ServerResponse{
2531			Header:         res.Header,
2532			HTTPStatusCode: res.StatusCode,
2533		},
2534	}
2535	target := &ret
2536	if err := gensupport.DecodeResponse(target, res); err != nil {
2537		return nil, err
2538	}
2539	return ret, nil
2540	// {
2541	//   "description": "Deletes a single Instance.",
2542	//   "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/instances/{instancesId}",
2543	//   "httpMethod": "DELETE",
2544	//   "id": "memcache.projects.locations.instances.delete",
2545	//   "parameterOrder": [
2546	//     "name"
2547	//   ],
2548	//   "parameters": {
2549	//     "name": {
2550	//       "description": "Required. Memcached instance resource name in the format: `projects/{project_id}/locations/{location_id}/instances/{instance_id}` where `location_id` refers to a GCP region",
2551	//       "location": "path",
2552	//       "pattern": "^projects/[^/]+/locations/[^/]+/instances/[^/]+$",
2553	//       "required": true,
2554	//       "type": "string"
2555	//     }
2556	//   },
2557	//   "path": "v1/{+name}",
2558	//   "response": {
2559	//     "$ref": "Operation"
2560	//   },
2561	//   "scopes": [
2562	//     "https://www.googleapis.com/auth/cloud-platform"
2563	//   ]
2564	// }
2565
2566}
2567
2568// method id "memcache.projects.locations.instances.get":
2569
2570type ProjectsLocationsInstancesGetCall struct {
2571	s            *Service
2572	name         string
2573	urlParams_   gensupport.URLParams
2574	ifNoneMatch_ string
2575	ctx_         context.Context
2576	header_      http.Header
2577}
2578
2579// Get: Gets details of a single Instance.
2580//
2581// - name: Memcached instance resource name in the format:
2582//   `projects/{project_id}/locations/{location_id}/instances/{instance_i
2583//   d}` where `location_id` refers to a GCP region.
2584func (r *ProjectsLocationsInstancesService) Get(name string) *ProjectsLocationsInstancesGetCall {
2585	c := &ProjectsLocationsInstancesGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
2586	c.name = name
2587	return c
2588}
2589
2590// Fields allows partial responses to be retrieved. See
2591// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
2592// for more information.
2593func (c *ProjectsLocationsInstancesGetCall) Fields(s ...googleapi.Field) *ProjectsLocationsInstancesGetCall {
2594	c.urlParams_.Set("fields", googleapi.CombineFields(s))
2595	return c
2596}
2597
2598// IfNoneMatch sets the optional parameter which makes the operation
2599// fail if the object's ETag matches the given value. This is useful for
2600// getting updates only after the object has changed since the last
2601// request. Use googleapi.IsNotModified to check whether the response
2602// error from Do is the result of In-None-Match.
2603func (c *ProjectsLocationsInstancesGetCall) IfNoneMatch(entityTag string) *ProjectsLocationsInstancesGetCall {
2604	c.ifNoneMatch_ = entityTag
2605	return c
2606}
2607
2608// Context sets the context to be used in this call's Do method. Any
2609// pending HTTP request will be aborted if the provided context is
2610// canceled.
2611func (c *ProjectsLocationsInstancesGetCall) Context(ctx context.Context) *ProjectsLocationsInstancesGetCall {
2612	c.ctx_ = ctx
2613	return c
2614}
2615
2616// Header returns an http.Header that can be modified by the caller to
2617// add HTTP headers to the request.
2618func (c *ProjectsLocationsInstancesGetCall) Header() http.Header {
2619	if c.header_ == nil {
2620		c.header_ = make(http.Header)
2621	}
2622	return c.header_
2623}
2624
2625func (c *ProjectsLocationsInstancesGetCall) doRequest(alt string) (*http.Response, error) {
2626	reqHeaders := make(http.Header)
2627	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210915")
2628	for k, v := range c.header_ {
2629		reqHeaders[k] = v
2630	}
2631	reqHeaders.Set("User-Agent", c.s.userAgent())
2632	if c.ifNoneMatch_ != "" {
2633		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
2634	}
2635	var body io.Reader = nil
2636	c.urlParams_.Set("alt", alt)
2637	c.urlParams_.Set("prettyPrint", "false")
2638	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/{+name}")
2639	urls += "?" + c.urlParams_.Encode()
2640	req, err := http.NewRequest("GET", urls, body)
2641	if err != nil {
2642		return nil, err
2643	}
2644	req.Header = reqHeaders
2645	googleapi.Expand(req.URL, map[string]string{
2646		"name": c.name,
2647	})
2648	return gensupport.SendRequest(c.ctx_, c.s.client, req)
2649}
2650
2651// Do executes the "memcache.projects.locations.instances.get" call.
2652// Exactly one of *Instance or error will be non-nil. Any non-2xx status
2653// code is an error. Response headers are in either
2654// *Instance.ServerResponse.Header or (if a response was returned at
2655// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
2656// to check whether the returned error was because
2657// http.StatusNotModified was returned.
2658func (c *ProjectsLocationsInstancesGetCall) Do(opts ...googleapi.CallOption) (*Instance, error) {
2659	gensupport.SetOptions(c.urlParams_, opts...)
2660	res, err := c.doRequest("json")
2661	if res != nil && res.StatusCode == http.StatusNotModified {
2662		if res.Body != nil {
2663			res.Body.Close()
2664		}
2665		return nil, &googleapi.Error{
2666			Code:   res.StatusCode,
2667			Header: res.Header,
2668		}
2669	}
2670	if err != nil {
2671		return nil, err
2672	}
2673	defer googleapi.CloseBody(res)
2674	if err := googleapi.CheckResponse(res); err != nil {
2675		return nil, err
2676	}
2677	ret := &Instance{
2678		ServerResponse: googleapi.ServerResponse{
2679			Header:         res.Header,
2680			HTTPStatusCode: res.StatusCode,
2681		},
2682	}
2683	target := &ret
2684	if err := gensupport.DecodeResponse(target, res); err != nil {
2685		return nil, err
2686	}
2687	return ret, nil
2688	// {
2689	//   "description": "Gets details of a single Instance.",
2690	//   "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/instances/{instancesId}",
2691	//   "httpMethod": "GET",
2692	//   "id": "memcache.projects.locations.instances.get",
2693	//   "parameterOrder": [
2694	//     "name"
2695	//   ],
2696	//   "parameters": {
2697	//     "name": {
2698	//       "description": "Required. Memcached instance resource name in the format: `projects/{project_id}/locations/{location_id}/instances/{instance_id}` where `location_id` refers to a GCP region",
2699	//       "location": "path",
2700	//       "pattern": "^projects/[^/]+/locations/[^/]+/instances/[^/]+$",
2701	//       "required": true,
2702	//       "type": "string"
2703	//     }
2704	//   },
2705	//   "path": "v1/{+name}",
2706	//   "response": {
2707	//     "$ref": "Instance"
2708	//   },
2709	//   "scopes": [
2710	//     "https://www.googleapis.com/auth/cloud-platform"
2711	//   ]
2712	// }
2713
2714}
2715
2716// method id "memcache.projects.locations.instances.list":
2717
2718type ProjectsLocationsInstancesListCall struct {
2719	s            *Service
2720	parent       string
2721	urlParams_   gensupport.URLParams
2722	ifNoneMatch_ string
2723	ctx_         context.Context
2724	header_      http.Header
2725}
2726
2727// List: Lists Instances in a given location.
2728//
2729// - parent: The resource name of the instance location using the form:
2730//   `projects/{project_id}/locations/{location_id}` where `location_id`
2731//   refers to a GCP region.
2732func (r *ProjectsLocationsInstancesService) List(parent string) *ProjectsLocationsInstancesListCall {
2733	c := &ProjectsLocationsInstancesListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
2734	c.parent = parent
2735	return c
2736}
2737
2738// Filter sets the optional parameter "filter": List filter. For
2739// example, exclude all Memcached instances with name as my-instance by
2740// specifying "name != my-instance".
2741func (c *ProjectsLocationsInstancesListCall) Filter(filter string) *ProjectsLocationsInstancesListCall {
2742	c.urlParams_.Set("filter", filter)
2743	return c
2744}
2745
2746// OrderBy sets the optional parameter "orderBy": Sort results.
2747// Supported values are "name", "name desc" or "" (unsorted).
2748func (c *ProjectsLocationsInstancesListCall) OrderBy(orderBy string) *ProjectsLocationsInstancesListCall {
2749	c.urlParams_.Set("orderBy", orderBy)
2750	return c
2751}
2752
2753// PageSize sets the optional parameter "pageSize": The maximum number
2754// of items to return. If not specified, a default value of 1000 will be
2755// used by the service. Regardless of the `page_size` value, the
2756// response may include a partial list and a caller should only rely on
2757// response's `next_page_token` to determine if there are more instances
2758// left to be queried.
2759func (c *ProjectsLocationsInstancesListCall) PageSize(pageSize int64) *ProjectsLocationsInstancesListCall {
2760	c.urlParams_.Set("pageSize", fmt.Sprint(pageSize))
2761	return c
2762}
2763
2764// PageToken sets the optional parameter "pageToken": The
2765// `next_page_token` value returned from a previous List request, if
2766// any.
2767func (c *ProjectsLocationsInstancesListCall) PageToken(pageToken string) *ProjectsLocationsInstancesListCall {
2768	c.urlParams_.Set("pageToken", pageToken)
2769	return c
2770}
2771
2772// Fields allows partial responses to be retrieved. See
2773// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
2774// for more information.
2775func (c *ProjectsLocationsInstancesListCall) Fields(s ...googleapi.Field) *ProjectsLocationsInstancesListCall {
2776	c.urlParams_.Set("fields", googleapi.CombineFields(s))
2777	return c
2778}
2779
2780// IfNoneMatch sets the optional parameter which makes the operation
2781// fail if the object's ETag matches the given value. This is useful for
2782// getting updates only after the object has changed since the last
2783// request. Use googleapi.IsNotModified to check whether the response
2784// error from Do is the result of In-None-Match.
2785func (c *ProjectsLocationsInstancesListCall) IfNoneMatch(entityTag string) *ProjectsLocationsInstancesListCall {
2786	c.ifNoneMatch_ = entityTag
2787	return c
2788}
2789
2790// Context sets the context to be used in this call's Do method. Any
2791// pending HTTP request will be aborted if the provided context is
2792// canceled.
2793func (c *ProjectsLocationsInstancesListCall) Context(ctx context.Context) *ProjectsLocationsInstancesListCall {
2794	c.ctx_ = ctx
2795	return c
2796}
2797
2798// Header returns an http.Header that can be modified by the caller to
2799// add HTTP headers to the request.
2800func (c *ProjectsLocationsInstancesListCall) Header() http.Header {
2801	if c.header_ == nil {
2802		c.header_ = make(http.Header)
2803	}
2804	return c.header_
2805}
2806
2807func (c *ProjectsLocationsInstancesListCall) doRequest(alt string) (*http.Response, error) {
2808	reqHeaders := make(http.Header)
2809	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210915")
2810	for k, v := range c.header_ {
2811		reqHeaders[k] = v
2812	}
2813	reqHeaders.Set("User-Agent", c.s.userAgent())
2814	if c.ifNoneMatch_ != "" {
2815		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
2816	}
2817	var body io.Reader = nil
2818	c.urlParams_.Set("alt", alt)
2819	c.urlParams_.Set("prettyPrint", "false")
2820	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/{+parent}/instances")
2821	urls += "?" + c.urlParams_.Encode()
2822	req, err := http.NewRequest("GET", urls, body)
2823	if err != nil {
2824		return nil, err
2825	}
2826	req.Header = reqHeaders
2827	googleapi.Expand(req.URL, map[string]string{
2828		"parent": c.parent,
2829	})
2830	return gensupport.SendRequest(c.ctx_, c.s.client, req)
2831}
2832
2833// Do executes the "memcache.projects.locations.instances.list" call.
2834// Exactly one of *ListInstancesResponse or error will be non-nil. Any
2835// non-2xx status code is an error. Response headers are in either
2836// *ListInstancesResponse.ServerResponse.Header or (if a response was
2837// returned at all) in error.(*googleapi.Error).Header. Use
2838// googleapi.IsNotModified to check whether the returned error was
2839// because http.StatusNotModified was returned.
2840func (c *ProjectsLocationsInstancesListCall) Do(opts ...googleapi.CallOption) (*ListInstancesResponse, error) {
2841	gensupport.SetOptions(c.urlParams_, opts...)
2842	res, err := c.doRequest("json")
2843	if res != nil && res.StatusCode == http.StatusNotModified {
2844		if res.Body != nil {
2845			res.Body.Close()
2846		}
2847		return nil, &googleapi.Error{
2848			Code:   res.StatusCode,
2849			Header: res.Header,
2850		}
2851	}
2852	if err != nil {
2853		return nil, err
2854	}
2855	defer googleapi.CloseBody(res)
2856	if err := googleapi.CheckResponse(res); err != nil {
2857		return nil, err
2858	}
2859	ret := &ListInstancesResponse{
2860		ServerResponse: googleapi.ServerResponse{
2861			Header:         res.Header,
2862			HTTPStatusCode: res.StatusCode,
2863		},
2864	}
2865	target := &ret
2866	if err := gensupport.DecodeResponse(target, res); err != nil {
2867		return nil, err
2868	}
2869	return ret, nil
2870	// {
2871	//   "description": "Lists Instances in a given location.",
2872	//   "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/instances",
2873	//   "httpMethod": "GET",
2874	//   "id": "memcache.projects.locations.instances.list",
2875	//   "parameterOrder": [
2876	//     "parent"
2877	//   ],
2878	//   "parameters": {
2879	//     "filter": {
2880	//       "description": "List filter. For example, exclude all Memcached instances with name as my-instance by specifying `\"name != my-instance\"`.",
2881	//       "location": "query",
2882	//       "type": "string"
2883	//     },
2884	//     "orderBy": {
2885	//       "description": "Sort results. Supported values are \"name\", \"name desc\" or \"\" (unsorted).",
2886	//       "location": "query",
2887	//       "type": "string"
2888	//     },
2889	//     "pageSize": {
2890	//       "description": "The maximum number of items to return. If not specified, a default value of 1000 will be used by the service. Regardless of the `page_size` value, the response may include a partial list and a caller should only rely on response's `next_page_token` to determine if there are more instances left to be queried.",
2891	//       "format": "int32",
2892	//       "location": "query",
2893	//       "type": "integer"
2894	//     },
2895	//     "pageToken": {
2896	//       "description": "The `next_page_token` value returned from a previous List request, if any.",
2897	//       "location": "query",
2898	//       "type": "string"
2899	//     },
2900	//     "parent": {
2901	//       "description": "Required. The resource name of the instance location using the form: `projects/{project_id}/locations/{location_id}` where `location_id` refers to a GCP region",
2902	//       "location": "path",
2903	//       "pattern": "^projects/[^/]+/locations/[^/]+$",
2904	//       "required": true,
2905	//       "type": "string"
2906	//     }
2907	//   },
2908	//   "path": "v1/{+parent}/instances",
2909	//   "response": {
2910	//     "$ref": "ListInstancesResponse"
2911	//   },
2912	//   "scopes": [
2913	//     "https://www.googleapis.com/auth/cloud-platform"
2914	//   ]
2915	// }
2916
2917}
2918
2919// Pages invokes f for each page of results.
2920// A non-nil error returned from f will halt the iteration.
2921// The provided context supersedes any context provided to the Context method.
2922func (c *ProjectsLocationsInstancesListCall) Pages(ctx context.Context, f func(*ListInstancesResponse) error) error {
2923	c.ctx_ = ctx
2924	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
2925	for {
2926		x, err := c.Do()
2927		if err != nil {
2928			return err
2929		}
2930		if err := f(x); err != nil {
2931			return err
2932		}
2933		if x.NextPageToken == "" {
2934			return nil
2935		}
2936		c.PageToken(x.NextPageToken)
2937	}
2938}
2939
2940// method id "memcache.projects.locations.instances.patch":
2941
2942type ProjectsLocationsInstancesPatchCall struct {
2943	s          *Service
2944	name       string
2945	instance   *Instance
2946	urlParams_ gensupport.URLParams
2947	ctx_       context.Context
2948	header_    http.Header
2949}
2950
2951// Patch: Updates an existing Instance in a given project and location.
2952//
2953// - name: Unique name of the resource in this scope including project
2954//   and location using the form:
2955//   `projects/{project_id}/locations/{location_id}/instances/{instance_i
2956//   d}` Note: Memcached instances are managed and addressed at the
2957//   regional level so `location_id` here refers to a Google Cloud
2958//   region; however, users may choose which zones Memcached nodes
2959//   should be provisioned in within an instance. Refer to zones field
2960//   for more details.
2961func (r *ProjectsLocationsInstancesService) Patch(name string, instance *Instance) *ProjectsLocationsInstancesPatchCall {
2962	c := &ProjectsLocationsInstancesPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)}
2963	c.name = name
2964	c.instance = instance
2965	return c
2966}
2967
2968// UpdateMask sets the optional parameter "updateMask": Required. Mask
2969// of fields to update. * `displayName`
2970func (c *ProjectsLocationsInstancesPatchCall) UpdateMask(updateMask string) *ProjectsLocationsInstancesPatchCall {
2971	c.urlParams_.Set("updateMask", updateMask)
2972	return c
2973}
2974
2975// Fields allows partial responses to be retrieved. See
2976// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
2977// for more information.
2978func (c *ProjectsLocationsInstancesPatchCall) Fields(s ...googleapi.Field) *ProjectsLocationsInstancesPatchCall {
2979	c.urlParams_.Set("fields", googleapi.CombineFields(s))
2980	return c
2981}
2982
2983// Context sets the context to be used in this call's Do method. Any
2984// pending HTTP request will be aborted if the provided context is
2985// canceled.
2986func (c *ProjectsLocationsInstancesPatchCall) Context(ctx context.Context) *ProjectsLocationsInstancesPatchCall {
2987	c.ctx_ = ctx
2988	return c
2989}
2990
2991// Header returns an http.Header that can be modified by the caller to
2992// add HTTP headers to the request.
2993func (c *ProjectsLocationsInstancesPatchCall) Header() http.Header {
2994	if c.header_ == nil {
2995		c.header_ = make(http.Header)
2996	}
2997	return c.header_
2998}
2999
3000func (c *ProjectsLocationsInstancesPatchCall) doRequest(alt string) (*http.Response, error) {
3001	reqHeaders := make(http.Header)
3002	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210915")
3003	for k, v := range c.header_ {
3004		reqHeaders[k] = v
3005	}
3006	reqHeaders.Set("User-Agent", c.s.userAgent())
3007	var body io.Reader = nil
3008	body, err := googleapi.WithoutDataWrapper.JSONReader(c.instance)
3009	if err != nil {
3010		return nil, err
3011	}
3012	reqHeaders.Set("Content-Type", "application/json")
3013	c.urlParams_.Set("alt", alt)
3014	c.urlParams_.Set("prettyPrint", "false")
3015	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/{+name}")
3016	urls += "?" + c.urlParams_.Encode()
3017	req, err := http.NewRequest("PATCH", urls, body)
3018	if err != nil {
3019		return nil, err
3020	}
3021	req.Header = reqHeaders
3022	googleapi.Expand(req.URL, map[string]string{
3023		"name": c.name,
3024	})
3025	return gensupport.SendRequest(c.ctx_, c.s.client, req)
3026}
3027
3028// Do executes the "memcache.projects.locations.instances.patch" call.
3029// Exactly one of *Operation or error will be non-nil. Any non-2xx
3030// status code is an error. Response headers are in either
3031// *Operation.ServerResponse.Header or (if a response was returned at
3032// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
3033// to check whether the returned error was because
3034// http.StatusNotModified was returned.
3035func (c *ProjectsLocationsInstancesPatchCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
3036	gensupport.SetOptions(c.urlParams_, opts...)
3037	res, err := c.doRequest("json")
3038	if res != nil && res.StatusCode == http.StatusNotModified {
3039		if res.Body != nil {
3040			res.Body.Close()
3041		}
3042		return nil, &googleapi.Error{
3043			Code:   res.StatusCode,
3044			Header: res.Header,
3045		}
3046	}
3047	if err != nil {
3048		return nil, err
3049	}
3050	defer googleapi.CloseBody(res)
3051	if err := googleapi.CheckResponse(res); err != nil {
3052		return nil, err
3053	}
3054	ret := &Operation{
3055		ServerResponse: googleapi.ServerResponse{
3056			Header:         res.Header,
3057			HTTPStatusCode: res.StatusCode,
3058		},
3059	}
3060	target := &ret
3061	if err := gensupport.DecodeResponse(target, res); err != nil {
3062		return nil, err
3063	}
3064	return ret, nil
3065	// {
3066	//   "description": "Updates an existing Instance in a given project and location.",
3067	//   "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/instances/{instancesId}",
3068	//   "httpMethod": "PATCH",
3069	//   "id": "memcache.projects.locations.instances.patch",
3070	//   "parameterOrder": [
3071	//     "name"
3072	//   ],
3073	//   "parameters": {
3074	//     "name": {
3075	//       "description": "Required. Unique name of the resource in this scope including project and location using the form: `projects/{project_id}/locations/{location_id}/instances/{instance_id}` Note: Memcached instances are managed and addressed at the regional level so `location_id` here refers to a Google Cloud region; however, users may choose which zones Memcached nodes should be provisioned in within an instance. Refer to zones field for more details.",
3076	//       "location": "path",
3077	//       "pattern": "^projects/[^/]+/locations/[^/]+/instances/[^/]+$",
3078	//       "required": true,
3079	//       "type": "string"
3080	//     },
3081	//     "updateMask": {
3082	//       "description": "Required. Mask of fields to update. * `displayName`",
3083	//       "format": "google-fieldmask",
3084	//       "location": "query",
3085	//       "type": "string"
3086	//     }
3087	//   },
3088	//   "path": "v1/{+name}",
3089	//   "request": {
3090	//     "$ref": "Instance"
3091	//   },
3092	//   "response": {
3093	//     "$ref": "Operation"
3094	//   },
3095	//   "scopes": [
3096	//     "https://www.googleapis.com/auth/cloud-platform"
3097	//   ]
3098	// }
3099
3100}
3101
3102// method id "memcache.projects.locations.instances.updateParameters":
3103
3104type ProjectsLocationsInstancesUpdateParametersCall struct {
3105	s                       *Service
3106	name                    string
3107	updateparametersrequest *UpdateParametersRequest
3108	urlParams_              gensupport.URLParams
3109	ctx_                    context.Context
3110	header_                 http.Header
3111}
3112
3113// UpdateParameters: Updates the defined Memcached parameters for an
3114// existing instance. This method only stages the parameters, it must be
3115// followed by `ApplyParameters` to apply the parameters to nodes of the
3116// Memcached instance.
3117//
3118// - name: Resource name of the Memcached instance for which the
3119//   parameters should be updated.
3120func (r *ProjectsLocationsInstancesService) UpdateParameters(name string, updateparametersrequest *UpdateParametersRequest) *ProjectsLocationsInstancesUpdateParametersCall {
3121	c := &ProjectsLocationsInstancesUpdateParametersCall{s: r.s, urlParams_: make(gensupport.URLParams)}
3122	c.name = name
3123	c.updateparametersrequest = updateparametersrequest
3124	return c
3125}
3126
3127// Fields allows partial responses to be retrieved. See
3128// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
3129// for more information.
3130func (c *ProjectsLocationsInstancesUpdateParametersCall) Fields(s ...googleapi.Field) *ProjectsLocationsInstancesUpdateParametersCall {
3131	c.urlParams_.Set("fields", googleapi.CombineFields(s))
3132	return c
3133}
3134
3135// Context sets the context to be used in this call's Do method. Any
3136// pending HTTP request will be aborted if the provided context is
3137// canceled.
3138func (c *ProjectsLocationsInstancesUpdateParametersCall) Context(ctx context.Context) *ProjectsLocationsInstancesUpdateParametersCall {
3139	c.ctx_ = ctx
3140	return c
3141}
3142
3143// Header returns an http.Header that can be modified by the caller to
3144// add HTTP headers to the request.
3145func (c *ProjectsLocationsInstancesUpdateParametersCall) Header() http.Header {
3146	if c.header_ == nil {
3147		c.header_ = make(http.Header)
3148	}
3149	return c.header_
3150}
3151
3152func (c *ProjectsLocationsInstancesUpdateParametersCall) doRequest(alt string) (*http.Response, error) {
3153	reqHeaders := make(http.Header)
3154	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210915")
3155	for k, v := range c.header_ {
3156		reqHeaders[k] = v
3157	}
3158	reqHeaders.Set("User-Agent", c.s.userAgent())
3159	var body io.Reader = nil
3160	body, err := googleapi.WithoutDataWrapper.JSONReader(c.updateparametersrequest)
3161	if err != nil {
3162		return nil, err
3163	}
3164	reqHeaders.Set("Content-Type", "application/json")
3165	c.urlParams_.Set("alt", alt)
3166	c.urlParams_.Set("prettyPrint", "false")
3167	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/{+name}:updateParameters")
3168	urls += "?" + c.urlParams_.Encode()
3169	req, err := http.NewRequest("PATCH", urls, body)
3170	if err != nil {
3171		return nil, err
3172	}
3173	req.Header = reqHeaders
3174	googleapi.Expand(req.URL, map[string]string{
3175		"name": c.name,
3176	})
3177	return gensupport.SendRequest(c.ctx_, c.s.client, req)
3178}
3179
3180// Do executes the "memcache.projects.locations.instances.updateParameters" call.
3181// Exactly one of *Operation or error will be non-nil. Any non-2xx
3182// status code is an error. Response headers are in either
3183// *Operation.ServerResponse.Header or (if a response was returned at
3184// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
3185// to check whether the returned error was because
3186// http.StatusNotModified was returned.
3187func (c *ProjectsLocationsInstancesUpdateParametersCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
3188	gensupport.SetOptions(c.urlParams_, opts...)
3189	res, err := c.doRequest("json")
3190	if res != nil && res.StatusCode == http.StatusNotModified {
3191		if res.Body != nil {
3192			res.Body.Close()
3193		}
3194		return nil, &googleapi.Error{
3195			Code:   res.StatusCode,
3196			Header: res.Header,
3197		}
3198	}
3199	if err != nil {
3200		return nil, err
3201	}
3202	defer googleapi.CloseBody(res)
3203	if err := googleapi.CheckResponse(res); err != nil {
3204		return nil, err
3205	}
3206	ret := &Operation{
3207		ServerResponse: googleapi.ServerResponse{
3208			Header:         res.Header,
3209			HTTPStatusCode: res.StatusCode,
3210		},
3211	}
3212	target := &ret
3213	if err := gensupport.DecodeResponse(target, res); err != nil {
3214		return nil, err
3215	}
3216	return ret, nil
3217	// {
3218	//   "description": "Updates the defined Memcached parameters for an existing instance. This method only stages the parameters, it must be followed by `ApplyParameters` to apply the parameters to nodes of the Memcached instance.",
3219	//   "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/instances/{instancesId}:updateParameters",
3220	//   "httpMethod": "PATCH",
3221	//   "id": "memcache.projects.locations.instances.updateParameters",
3222	//   "parameterOrder": [
3223	//     "name"
3224	//   ],
3225	//   "parameters": {
3226	//     "name": {
3227	//       "description": "Required. Resource name of the Memcached instance for which the parameters should be updated.",
3228	//       "location": "path",
3229	//       "pattern": "^projects/[^/]+/locations/[^/]+/instances/[^/]+$",
3230	//       "required": true,
3231	//       "type": "string"
3232	//     }
3233	//   },
3234	//   "path": "v1/{+name}:updateParameters",
3235	//   "request": {
3236	//     "$ref": "UpdateParametersRequest"
3237	//   },
3238	//   "response": {
3239	//     "$ref": "Operation"
3240	//   },
3241	//   "scopes": [
3242	//     "https://www.googleapis.com/auth/cloud-platform"
3243	//   ]
3244	// }
3245
3246}
3247
3248// method id "memcache.projects.locations.operations.cancel":
3249
3250type ProjectsLocationsOperationsCancelCall struct {
3251	s                      *Service
3252	name                   string
3253	canceloperationrequest *CancelOperationRequest
3254	urlParams_             gensupport.URLParams
3255	ctx_                   context.Context
3256	header_                http.Header
3257}
3258
3259// Cancel: Starts asynchronous cancellation on a long-running operation.
3260// The server makes a best effort to cancel the operation, but success
3261// is not guaranteed. If the server doesn't support this method, it
3262// returns `google.rpc.Code.UNIMPLEMENTED`. Clients can use
3263// Operations.GetOperation or other methods to check whether the
3264// cancellation succeeded or whether the operation completed despite
3265// cancellation. On successful cancellation, the operation is not
3266// deleted; instead, it becomes an operation with an Operation.error
3267// value with a google.rpc.Status.code of 1, corresponding to
3268// `Code.CANCELLED`.
3269//
3270// - name: The name of the operation resource to be cancelled.
3271func (r *ProjectsLocationsOperationsService) Cancel(name string, canceloperationrequest *CancelOperationRequest) *ProjectsLocationsOperationsCancelCall {
3272	c := &ProjectsLocationsOperationsCancelCall{s: r.s, urlParams_: make(gensupport.URLParams)}
3273	c.name = name
3274	c.canceloperationrequest = canceloperationrequest
3275	return c
3276}
3277
3278// Fields allows partial responses to be retrieved. See
3279// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
3280// for more information.
3281func (c *ProjectsLocationsOperationsCancelCall) Fields(s ...googleapi.Field) *ProjectsLocationsOperationsCancelCall {
3282	c.urlParams_.Set("fields", googleapi.CombineFields(s))
3283	return c
3284}
3285
3286// Context sets the context to be used in this call's Do method. Any
3287// pending HTTP request will be aborted if the provided context is
3288// canceled.
3289func (c *ProjectsLocationsOperationsCancelCall) Context(ctx context.Context) *ProjectsLocationsOperationsCancelCall {
3290	c.ctx_ = ctx
3291	return c
3292}
3293
3294// Header returns an http.Header that can be modified by the caller to
3295// add HTTP headers to the request.
3296func (c *ProjectsLocationsOperationsCancelCall) Header() http.Header {
3297	if c.header_ == nil {
3298		c.header_ = make(http.Header)
3299	}
3300	return c.header_
3301}
3302
3303func (c *ProjectsLocationsOperationsCancelCall) doRequest(alt string) (*http.Response, error) {
3304	reqHeaders := make(http.Header)
3305	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210915")
3306	for k, v := range c.header_ {
3307		reqHeaders[k] = v
3308	}
3309	reqHeaders.Set("User-Agent", c.s.userAgent())
3310	var body io.Reader = nil
3311	body, err := googleapi.WithoutDataWrapper.JSONReader(c.canceloperationrequest)
3312	if err != nil {
3313		return nil, err
3314	}
3315	reqHeaders.Set("Content-Type", "application/json")
3316	c.urlParams_.Set("alt", alt)
3317	c.urlParams_.Set("prettyPrint", "false")
3318	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/{+name}:cancel")
3319	urls += "?" + c.urlParams_.Encode()
3320	req, err := http.NewRequest("POST", urls, body)
3321	if err != nil {
3322		return nil, err
3323	}
3324	req.Header = reqHeaders
3325	googleapi.Expand(req.URL, map[string]string{
3326		"name": c.name,
3327	})
3328	return gensupport.SendRequest(c.ctx_, c.s.client, req)
3329}
3330
3331// Do executes the "memcache.projects.locations.operations.cancel" call.
3332// Exactly one of *Empty or error will be non-nil. Any non-2xx status
3333// code is an error. Response headers are in either
3334// *Empty.ServerResponse.Header or (if a response was returned at all)
3335// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
3336// check whether the returned error was because http.StatusNotModified
3337// was returned.
3338func (c *ProjectsLocationsOperationsCancelCall) Do(opts ...googleapi.CallOption) (*Empty, error) {
3339	gensupport.SetOptions(c.urlParams_, opts...)
3340	res, err := c.doRequest("json")
3341	if res != nil && res.StatusCode == http.StatusNotModified {
3342		if res.Body != nil {
3343			res.Body.Close()
3344		}
3345		return nil, &googleapi.Error{
3346			Code:   res.StatusCode,
3347			Header: res.Header,
3348		}
3349	}
3350	if err != nil {
3351		return nil, err
3352	}
3353	defer googleapi.CloseBody(res)
3354	if err := googleapi.CheckResponse(res); err != nil {
3355		return nil, err
3356	}
3357	ret := &Empty{
3358		ServerResponse: googleapi.ServerResponse{
3359			Header:         res.Header,
3360			HTTPStatusCode: res.StatusCode,
3361		},
3362	}
3363	target := &ret
3364	if err := gensupport.DecodeResponse(target, res); err != nil {
3365		return nil, err
3366	}
3367	return ret, nil
3368	// {
3369	//   "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`.",
3370	//   "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/operations/{operationsId}:cancel",
3371	//   "httpMethod": "POST",
3372	//   "id": "memcache.projects.locations.operations.cancel",
3373	//   "parameterOrder": [
3374	//     "name"
3375	//   ],
3376	//   "parameters": {
3377	//     "name": {
3378	//       "description": "The name of the operation resource to be cancelled.",
3379	//       "location": "path",
3380	//       "pattern": "^projects/[^/]+/locations/[^/]+/operations/[^/]+$",
3381	//       "required": true,
3382	//       "type": "string"
3383	//     }
3384	//   },
3385	//   "path": "v1/{+name}:cancel",
3386	//   "request": {
3387	//     "$ref": "CancelOperationRequest"
3388	//   },
3389	//   "response": {
3390	//     "$ref": "Empty"
3391	//   },
3392	//   "scopes": [
3393	//     "https://www.googleapis.com/auth/cloud-platform"
3394	//   ]
3395	// }
3396
3397}
3398
3399// method id "memcache.projects.locations.operations.delete":
3400
3401type ProjectsLocationsOperationsDeleteCall struct {
3402	s          *Service
3403	name       string
3404	urlParams_ gensupport.URLParams
3405	ctx_       context.Context
3406	header_    http.Header
3407}
3408
3409// Delete: Deletes a long-running operation. This method indicates that
3410// the client is no longer interested in the operation result. It does
3411// not cancel the operation. If the server doesn't support this method,
3412// it returns `google.rpc.Code.UNIMPLEMENTED`.
3413//
3414// - name: The name of the operation resource to be deleted.
3415func (r *ProjectsLocationsOperationsService) Delete(name string) *ProjectsLocationsOperationsDeleteCall {
3416	c := &ProjectsLocationsOperationsDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
3417	c.name = name
3418	return c
3419}
3420
3421// Fields allows partial responses to be retrieved. See
3422// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
3423// for more information.
3424func (c *ProjectsLocationsOperationsDeleteCall) Fields(s ...googleapi.Field) *ProjectsLocationsOperationsDeleteCall {
3425	c.urlParams_.Set("fields", googleapi.CombineFields(s))
3426	return c
3427}
3428
3429// Context sets the context to be used in this call's Do method. Any
3430// pending HTTP request will be aborted if the provided context is
3431// canceled.
3432func (c *ProjectsLocationsOperationsDeleteCall) Context(ctx context.Context) *ProjectsLocationsOperationsDeleteCall {
3433	c.ctx_ = ctx
3434	return c
3435}
3436
3437// Header returns an http.Header that can be modified by the caller to
3438// add HTTP headers to the request.
3439func (c *ProjectsLocationsOperationsDeleteCall) Header() http.Header {
3440	if c.header_ == nil {
3441		c.header_ = make(http.Header)
3442	}
3443	return c.header_
3444}
3445
3446func (c *ProjectsLocationsOperationsDeleteCall) doRequest(alt string) (*http.Response, error) {
3447	reqHeaders := make(http.Header)
3448	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210915")
3449	for k, v := range c.header_ {
3450		reqHeaders[k] = v
3451	}
3452	reqHeaders.Set("User-Agent", c.s.userAgent())
3453	var body io.Reader = nil
3454	c.urlParams_.Set("alt", alt)
3455	c.urlParams_.Set("prettyPrint", "false")
3456	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/{+name}")
3457	urls += "?" + c.urlParams_.Encode()
3458	req, err := http.NewRequest("DELETE", urls, body)
3459	if err != nil {
3460		return nil, err
3461	}
3462	req.Header = reqHeaders
3463	googleapi.Expand(req.URL, map[string]string{
3464		"name": c.name,
3465	})
3466	return gensupport.SendRequest(c.ctx_, c.s.client, req)
3467}
3468
3469// Do executes the "memcache.projects.locations.operations.delete" call.
3470// Exactly one of *Empty or error will be non-nil. Any non-2xx status
3471// code is an error. Response headers are in either
3472// *Empty.ServerResponse.Header or (if a response was returned at all)
3473// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
3474// check whether the returned error was because http.StatusNotModified
3475// was returned.
3476func (c *ProjectsLocationsOperationsDeleteCall) Do(opts ...googleapi.CallOption) (*Empty, error) {
3477	gensupport.SetOptions(c.urlParams_, opts...)
3478	res, err := c.doRequest("json")
3479	if res != nil && res.StatusCode == http.StatusNotModified {
3480		if res.Body != nil {
3481			res.Body.Close()
3482		}
3483		return nil, &googleapi.Error{
3484			Code:   res.StatusCode,
3485			Header: res.Header,
3486		}
3487	}
3488	if err != nil {
3489		return nil, err
3490	}
3491	defer googleapi.CloseBody(res)
3492	if err := googleapi.CheckResponse(res); err != nil {
3493		return nil, err
3494	}
3495	ret := &Empty{
3496		ServerResponse: googleapi.ServerResponse{
3497			Header:         res.Header,
3498			HTTPStatusCode: res.StatusCode,
3499		},
3500	}
3501	target := &ret
3502	if err := gensupport.DecodeResponse(target, res); err != nil {
3503		return nil, err
3504	}
3505	return ret, nil
3506	// {
3507	//   "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`.",
3508	//   "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/operations/{operationsId}",
3509	//   "httpMethod": "DELETE",
3510	//   "id": "memcache.projects.locations.operations.delete",
3511	//   "parameterOrder": [
3512	//     "name"
3513	//   ],
3514	//   "parameters": {
3515	//     "name": {
3516	//       "description": "The name of the operation resource to be deleted.",
3517	//       "location": "path",
3518	//       "pattern": "^projects/[^/]+/locations/[^/]+/operations/[^/]+$",
3519	//       "required": true,
3520	//       "type": "string"
3521	//     }
3522	//   },
3523	//   "path": "v1/{+name}",
3524	//   "response": {
3525	//     "$ref": "Empty"
3526	//   },
3527	//   "scopes": [
3528	//     "https://www.googleapis.com/auth/cloud-platform"
3529	//   ]
3530	// }
3531
3532}
3533
3534// method id "memcache.projects.locations.operations.get":
3535
3536type ProjectsLocationsOperationsGetCall struct {
3537	s            *Service
3538	name         string
3539	urlParams_   gensupport.URLParams
3540	ifNoneMatch_ string
3541	ctx_         context.Context
3542	header_      http.Header
3543}
3544
3545// Get: Gets the latest state of a long-running operation. Clients can
3546// use this method to poll the operation result at intervals as
3547// recommended by the API service.
3548//
3549// - name: The name of the operation resource.
3550func (r *ProjectsLocationsOperationsService) Get(name string) *ProjectsLocationsOperationsGetCall {
3551	c := &ProjectsLocationsOperationsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
3552	c.name = name
3553	return c
3554}
3555
3556// Fields allows partial responses to be retrieved. See
3557// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
3558// for more information.
3559func (c *ProjectsLocationsOperationsGetCall) Fields(s ...googleapi.Field) *ProjectsLocationsOperationsGetCall {
3560	c.urlParams_.Set("fields", googleapi.CombineFields(s))
3561	return c
3562}
3563
3564// IfNoneMatch sets the optional parameter which makes the operation
3565// fail if the object's ETag matches the given value. This is useful for
3566// getting updates only after the object has changed since the last
3567// request. Use googleapi.IsNotModified to check whether the response
3568// error from Do is the result of In-None-Match.
3569func (c *ProjectsLocationsOperationsGetCall) IfNoneMatch(entityTag string) *ProjectsLocationsOperationsGetCall {
3570	c.ifNoneMatch_ = entityTag
3571	return c
3572}
3573
3574// Context sets the context to be used in this call's Do method. Any
3575// pending HTTP request will be aborted if the provided context is
3576// canceled.
3577func (c *ProjectsLocationsOperationsGetCall) Context(ctx context.Context) *ProjectsLocationsOperationsGetCall {
3578	c.ctx_ = ctx
3579	return c
3580}
3581
3582// Header returns an http.Header that can be modified by the caller to
3583// add HTTP headers to the request.
3584func (c *ProjectsLocationsOperationsGetCall) Header() http.Header {
3585	if c.header_ == nil {
3586		c.header_ = make(http.Header)
3587	}
3588	return c.header_
3589}
3590
3591func (c *ProjectsLocationsOperationsGetCall) doRequest(alt string) (*http.Response, error) {
3592	reqHeaders := make(http.Header)
3593	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210915")
3594	for k, v := range c.header_ {
3595		reqHeaders[k] = v
3596	}
3597	reqHeaders.Set("User-Agent", c.s.userAgent())
3598	if c.ifNoneMatch_ != "" {
3599		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
3600	}
3601	var body io.Reader = nil
3602	c.urlParams_.Set("alt", alt)
3603	c.urlParams_.Set("prettyPrint", "false")
3604	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/{+name}")
3605	urls += "?" + c.urlParams_.Encode()
3606	req, err := http.NewRequest("GET", urls, body)
3607	if err != nil {
3608		return nil, err
3609	}
3610	req.Header = reqHeaders
3611	googleapi.Expand(req.URL, map[string]string{
3612		"name": c.name,
3613	})
3614	return gensupport.SendRequest(c.ctx_, c.s.client, req)
3615}
3616
3617// Do executes the "memcache.projects.locations.operations.get" call.
3618// Exactly one of *Operation or error will be non-nil. Any non-2xx
3619// status code is an error. Response headers are in either
3620// *Operation.ServerResponse.Header or (if a response was returned at
3621// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
3622// to check whether the returned error was because
3623// http.StatusNotModified was returned.
3624func (c *ProjectsLocationsOperationsGetCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
3625	gensupport.SetOptions(c.urlParams_, opts...)
3626	res, err := c.doRequest("json")
3627	if res != nil && res.StatusCode == http.StatusNotModified {
3628		if res.Body != nil {
3629			res.Body.Close()
3630		}
3631		return nil, &googleapi.Error{
3632			Code:   res.StatusCode,
3633			Header: res.Header,
3634		}
3635	}
3636	if err != nil {
3637		return nil, err
3638	}
3639	defer googleapi.CloseBody(res)
3640	if err := googleapi.CheckResponse(res); err != nil {
3641		return nil, err
3642	}
3643	ret := &Operation{
3644		ServerResponse: googleapi.ServerResponse{
3645			Header:         res.Header,
3646			HTTPStatusCode: res.StatusCode,
3647		},
3648	}
3649	target := &ret
3650	if err := gensupport.DecodeResponse(target, res); err != nil {
3651		return nil, err
3652	}
3653	return ret, nil
3654	// {
3655	//   "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.",
3656	//   "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/operations/{operationsId}",
3657	//   "httpMethod": "GET",
3658	//   "id": "memcache.projects.locations.operations.get",
3659	//   "parameterOrder": [
3660	//     "name"
3661	//   ],
3662	//   "parameters": {
3663	//     "name": {
3664	//       "description": "The name of the operation resource.",
3665	//       "location": "path",
3666	//       "pattern": "^projects/[^/]+/locations/[^/]+/operations/[^/]+$",
3667	//       "required": true,
3668	//       "type": "string"
3669	//     }
3670	//   },
3671	//   "path": "v1/{+name}",
3672	//   "response": {
3673	//     "$ref": "Operation"
3674	//   },
3675	//   "scopes": [
3676	//     "https://www.googleapis.com/auth/cloud-platform"
3677	//   ]
3678	// }
3679
3680}
3681
3682// method id "memcache.projects.locations.operations.list":
3683
3684type ProjectsLocationsOperationsListCall struct {
3685	s            *Service
3686	name         string
3687	urlParams_   gensupport.URLParams
3688	ifNoneMatch_ string
3689	ctx_         context.Context
3690	header_      http.Header
3691}
3692
3693// List: Lists operations that match the specified filter in the
3694// request. If the server doesn't support this method, it returns
3695// `UNIMPLEMENTED`. NOTE: the `name` binding allows API services to
3696// override the binding to use different resource name schemes, such as
3697// `users/*/operations`. To override the binding, API services can add a
3698// binding such as "/v1/{name=users/*}/operations" to their service
3699// configuration. For backwards compatibility, the default name includes
3700// the operations collection id, however overriding users must ensure
3701// the name binding is the parent resource, without the operations
3702// collection id.
3703//
3704// - name: The name of the operation's parent resource.
3705func (r *ProjectsLocationsOperationsService) List(name string) *ProjectsLocationsOperationsListCall {
3706	c := &ProjectsLocationsOperationsListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
3707	c.name = name
3708	return c
3709}
3710
3711// Filter sets the optional parameter "filter": The standard list
3712// filter.
3713func (c *ProjectsLocationsOperationsListCall) Filter(filter string) *ProjectsLocationsOperationsListCall {
3714	c.urlParams_.Set("filter", filter)
3715	return c
3716}
3717
3718// PageSize sets the optional parameter "pageSize": The standard list
3719// page size.
3720func (c *ProjectsLocationsOperationsListCall) PageSize(pageSize int64) *ProjectsLocationsOperationsListCall {
3721	c.urlParams_.Set("pageSize", fmt.Sprint(pageSize))
3722	return c
3723}
3724
3725// PageToken sets the optional parameter "pageToken": The standard list
3726// page token.
3727func (c *ProjectsLocationsOperationsListCall) PageToken(pageToken string) *ProjectsLocationsOperationsListCall {
3728	c.urlParams_.Set("pageToken", pageToken)
3729	return c
3730}
3731
3732// Fields allows partial responses to be retrieved. See
3733// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
3734// for more information.
3735func (c *ProjectsLocationsOperationsListCall) Fields(s ...googleapi.Field) *ProjectsLocationsOperationsListCall {
3736	c.urlParams_.Set("fields", googleapi.CombineFields(s))
3737	return c
3738}
3739
3740// IfNoneMatch sets the optional parameter which makes the operation
3741// fail if the object's ETag matches the given value. This is useful for
3742// getting updates only after the object has changed since the last
3743// request. Use googleapi.IsNotModified to check whether the response
3744// error from Do is the result of In-None-Match.
3745func (c *ProjectsLocationsOperationsListCall) IfNoneMatch(entityTag string) *ProjectsLocationsOperationsListCall {
3746	c.ifNoneMatch_ = entityTag
3747	return c
3748}
3749
3750// Context sets the context to be used in this call's Do method. Any
3751// pending HTTP request will be aborted if the provided context is
3752// canceled.
3753func (c *ProjectsLocationsOperationsListCall) Context(ctx context.Context) *ProjectsLocationsOperationsListCall {
3754	c.ctx_ = ctx
3755	return c
3756}
3757
3758// Header returns an http.Header that can be modified by the caller to
3759// add HTTP headers to the request.
3760func (c *ProjectsLocationsOperationsListCall) Header() http.Header {
3761	if c.header_ == nil {
3762		c.header_ = make(http.Header)
3763	}
3764	return c.header_
3765}
3766
3767func (c *ProjectsLocationsOperationsListCall) doRequest(alt string) (*http.Response, error) {
3768	reqHeaders := make(http.Header)
3769	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210915")
3770	for k, v := range c.header_ {
3771		reqHeaders[k] = v
3772	}
3773	reqHeaders.Set("User-Agent", c.s.userAgent())
3774	if c.ifNoneMatch_ != "" {
3775		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
3776	}
3777	var body io.Reader = nil
3778	c.urlParams_.Set("alt", alt)
3779	c.urlParams_.Set("prettyPrint", "false")
3780	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/{+name}/operations")
3781	urls += "?" + c.urlParams_.Encode()
3782	req, err := http.NewRequest("GET", urls, body)
3783	if err != nil {
3784		return nil, err
3785	}
3786	req.Header = reqHeaders
3787	googleapi.Expand(req.URL, map[string]string{
3788		"name": c.name,
3789	})
3790	return gensupport.SendRequest(c.ctx_, c.s.client, req)
3791}
3792
3793// Do executes the "memcache.projects.locations.operations.list" call.
3794// Exactly one of *ListOperationsResponse or error will be non-nil. Any
3795// non-2xx status code is an error. Response headers are in either
3796// *ListOperationsResponse.ServerResponse.Header or (if a response was
3797// returned at all) in error.(*googleapi.Error).Header. Use
3798// googleapi.IsNotModified to check whether the returned error was
3799// because http.StatusNotModified was returned.
3800func (c *ProjectsLocationsOperationsListCall) Do(opts ...googleapi.CallOption) (*ListOperationsResponse, error) {
3801	gensupport.SetOptions(c.urlParams_, opts...)
3802	res, err := c.doRequest("json")
3803	if res != nil && res.StatusCode == http.StatusNotModified {
3804		if res.Body != nil {
3805			res.Body.Close()
3806		}
3807		return nil, &googleapi.Error{
3808			Code:   res.StatusCode,
3809			Header: res.Header,
3810		}
3811	}
3812	if err != nil {
3813		return nil, err
3814	}
3815	defer googleapi.CloseBody(res)
3816	if err := googleapi.CheckResponse(res); err != nil {
3817		return nil, err
3818	}
3819	ret := &ListOperationsResponse{
3820		ServerResponse: googleapi.ServerResponse{
3821			Header:         res.Header,
3822			HTTPStatusCode: res.StatusCode,
3823		},
3824	}
3825	target := &ret
3826	if err := gensupport.DecodeResponse(target, res); err != nil {
3827		return nil, err
3828	}
3829	return ret, nil
3830	// {
3831	//   "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.",
3832	//   "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/operations",
3833	//   "httpMethod": "GET",
3834	//   "id": "memcache.projects.locations.operations.list",
3835	//   "parameterOrder": [
3836	//     "name"
3837	//   ],
3838	//   "parameters": {
3839	//     "filter": {
3840	//       "description": "The standard list filter.",
3841	//       "location": "query",
3842	//       "type": "string"
3843	//     },
3844	//     "name": {
3845	//       "description": "The name of the operation's parent resource.",
3846	//       "location": "path",
3847	//       "pattern": "^projects/[^/]+/locations/[^/]+$",
3848	//       "required": true,
3849	//       "type": "string"
3850	//     },
3851	//     "pageSize": {
3852	//       "description": "The standard list page size.",
3853	//       "format": "int32",
3854	//       "location": "query",
3855	//       "type": "integer"
3856	//     },
3857	//     "pageToken": {
3858	//       "description": "The standard list page token.",
3859	//       "location": "query",
3860	//       "type": "string"
3861	//     }
3862	//   },
3863	//   "path": "v1/{+name}/operations",
3864	//   "response": {
3865	//     "$ref": "ListOperationsResponse"
3866	//   },
3867	//   "scopes": [
3868	//     "https://www.googleapis.com/auth/cloud-platform"
3869	//   ]
3870	// }
3871
3872}
3873
3874// Pages invokes f for each page of results.
3875// A non-nil error returned from f will halt the iteration.
3876// The provided context supersedes any context provided to the Context method.
3877func (c *ProjectsLocationsOperationsListCall) Pages(ctx context.Context, f func(*ListOperationsResponse) error) error {
3878	c.ctx_ = ctx
3879	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
3880	for {
3881		x, err := c.Do()
3882		if err != nil {
3883			return err
3884		}
3885		if err := f(x); err != nil {
3886			return err
3887		}
3888		if x.NextPageToken == "" {
3889			return nil
3890		}
3891		c.PageToken(x.NextPageToken)
3892	}
3893}
3894