From 2ce2d2d63343cae224e0f44f37d0426e9c7acbaa Mon Sep 17 00:00:00 2001 From: Yoshi Automation Bot Date: Wed, 1 Nov 2023 00:24:13 -0700 Subject: [PATCH] feat(all): auto-regenerate discovery clients (#2243) --- api-list.json | 21 +- chromeuxreport/v1/chromeuxreport-api.json | 10 +- chromeuxreport/v1/chromeuxreport-gen.go | 8 +- .../v1/contactcenterinsights-api.json | 214 +- .../v1/contactcenterinsights-gen.go | 435 +++- content/v2.1/content-api.json | 9 +- content/v2.1/content-gen.go | 27 + iam/v1/iam-api.json | 35 +- iam/v1/iam-gen.go | 90 +- storage/v1/storage-api.json | 320 ++- storage/v1/storage-gen.go | 1208 ++++++++- testing/v1/testing-api.json | 9 +- testing/v1/testing-gen.go | 4 + trafficdirector/v3/trafficdirector-api.json | 1289 ++++++++++ trafficdirector/v3/trafficdirector-gen.go | 2209 +++++++++++++++++ 15 files changed, 5833 insertions(+), 55 deletions(-) create mode 100644 trafficdirector/v3/trafficdirector-api.json create mode 100644 trafficdirector/v3/trafficdirector-gen.go diff --git a/api-list.json b/api-list.json index 6c90ba44999..8236883916a 100644 --- a/api-list.json +++ b/api-list.json @@ -1885,7 +1885,7 @@ "name": "containeranalysis", "version": "v1alpha1", "title": "Container Analysis API", - "description": "An implementation of the Grafeas API, which stores, and enables querying and retrieval of critical metadata about all of your software artifacts.", + "description": "This API is a prerequisite for leveraging Artifact Analysis scanning capabilities in both Artifact Registry and with Advanced Vulnerability Insights (runtime scanning) in GKE. In addition, the Container Analysis API is an implementation of the Grafeas API, which enables storing, querying, and retrieval of critical metadata about all of your software artifacts.", "discoveryRestUrl": "https://containeranalysis.googleapis.com/$discovery/rest?version=v1alpha1", "icons": { "x16": "https://www.gstatic.com/images/branding/product/1x/googleg_16dp.png", @@ -1900,7 +1900,7 @@ "name": "containeranalysis", "version": "v1beta1", "title": "Container Analysis API", - "description": "An implementation of the Grafeas API, which stores, and enables querying and retrieval of critical metadata about all of your software artifacts.", + "description": "This API is a prerequisite for leveraging Artifact Analysis scanning capabilities in both Artifact Registry and with Advanced Vulnerability Insights (runtime scanning) in GKE. In addition, the Container Analysis API is an implementation of the Grafeas API, which enables storing, querying, and retrieval of critical metadata about all of your software artifacts.", "discoveryRestUrl": "https://containeranalysis.googleapis.com/$discovery/rest?version=v1beta1", "icons": { "x16": "https://www.gstatic.com/images/branding/product/1x/googleg_16dp.png", @@ -1915,7 +1915,7 @@ "name": "containeranalysis", "version": "v1", "title": "Container Analysis API", - "description": "An implementation of the Grafeas API, which stores, and enables querying and retrieval of critical metadata about all of your software artifacts.", + "description": "This API is a prerequisite for leveraging Artifact Analysis scanning capabilities in both Artifact Registry and with Advanced Vulnerability Insights (runtime scanning) in GKE. In addition, the Container Analysis API is an implementation of the Grafeas API, which enables storing, querying, and retrieval of critical metadata about all of your software artifacts.", "discoveryRestUrl": "https://containeranalysis.googleapis.com/$discovery/rest?version=v1", "icons": { "x16": "https://www.gstatic.com/images/branding/product/1x/googleg_16dp.png", @@ -5840,6 +5840,21 @@ "x32": "https://www.gstatic.com/images/branding/product/1x/googleg_32dp.png" }, "documentationLink": "https://cloud.google.com/traffic-director", + "preferred": false + }, + { + "kind": "discovery#directoryItem", + "id": "trafficdirector:v3", + "name": "trafficdirector", + "version": "v3", + "title": "Traffic Director API", + "description": "", + "discoveryRestUrl": "https://trafficdirector.googleapis.com/$discovery/rest?version=v3", + "icons": { + "x16": "https://www.gstatic.com/images/branding/product/1x/googleg_16dp.png", + "x32": "https://www.gstatic.com/images/branding/product/1x/googleg_32dp.png" + }, + "documentationLink": "https://cloud.google.com/traffic-director", "preferred": true }, { diff --git a/chromeuxreport/v1/chromeuxreport-api.json b/chromeuxreport/v1/chromeuxreport-api.json index 8937faa20f2..4cafb96baad 100644 --- a/chromeuxreport/v1/chromeuxreport-api.json +++ b/chromeuxreport/v1/chromeuxreport-api.json @@ -131,7 +131,7 @@ } } }, - "revision": "20230208", + "revision": "20231030", "rootUrl": "https://chromeuxreport.googleapis.com/", "schemas": { "Bin": { @@ -286,6 +286,14 @@ "description": "A `metric` is a set of user experience data for a single web performance metric, like \"first contentful paint\". It contains a summary histogram of real world Chrome usage as a series of `bins`.", "id": "Metric", "properties": { + "fractions": { + "additionalProperties": { + "format": "double", + "type": "number" + }, + "description": "For enum metrics, provides fractions which add up to approximately 1.0.", + "type": "object" + }, "histogram": { "description": "The histogram of user experiences for a metric. The histogram will have at least one bin and the densities of all bins will add up to ~1.", "items": { diff --git a/chromeuxreport/v1/chromeuxreport-gen.go b/chromeuxreport/v1/chromeuxreport-gen.go index 7d2c6065880..76bc0a226ff 100644 --- a/chromeuxreport/v1/chromeuxreport-gen.go +++ b/chromeuxreport/v1/chromeuxreport-gen.go @@ -450,6 +450,10 @@ func (s *Key) MarshalJSON() ([]byte, error) { // performance metric, like "first contentful paint". It contains a // summary histogram of real world Chrome usage as a series of `bins`. type Metric struct { + // Fractions: For enum metrics, provides fractions which add up to + // approximately 1.0. + Fractions map[string]float64 `json:"fractions,omitempty"` + // Histogram: The histogram of user experiences for a metric. The // histogram will have at least one bin and the densities of all bins // will add up to ~1. @@ -460,7 +464,7 @@ type Metric struct { // for the Histogram bins. Percentiles *Percentiles `json:"percentiles,omitempty"` - // ForceSendFields is a list of field names (e.g. "Histogram") to + // ForceSendFields is a list of field names (e.g. "Fractions") to // unconditionally include in API requests. By default, fields with // empty or default values are omitted from API requests. However, any // non-pointer, non-interface field appearing in ForceSendFields will be @@ -468,7 +472,7 @@ type Metric struct { // This may be used to include empty fields in Patch requests. ForceSendFields []string `json:"-"` - // NullFields is a list of field names (e.g. "Histogram") to include in + // NullFields is a list of field names (e.g. "Fractions") to include in // API requests with the JSON null value. By default, fields with empty // values are omitted from API requests. However, any field with an // empty value appearing in NullFields will be sent to the server as diff --git a/contactcenterinsights/v1/contactcenterinsights-api.json b/contactcenterinsights/v1/contactcenterinsights-api.json index 4796f260e76..6d724389873 100644 --- a/contactcenterinsights/v1/contactcenterinsights-api.json +++ b/contactcenterinsights/v1/contactcenterinsights-api.json @@ -200,6 +200,34 @@ "https://www.googleapis.com/auth/cloud-platform" ] }, + "bulkDelete": { + "description": "Deletes multiple conversations in a single request.", + "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/conversations:bulkDelete", + "httpMethod": "POST", + "id": "contactcenterinsights.projects.locations.conversations.bulkDelete", + "parameterOrder": [ + "parent" + ], + "parameters": { + "parent": { + "description": "Required. The parent resource to create analyses in. Format: projects/{project}/locations/{location}", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+parent}/conversations:bulkDelete", + "request": { + "$ref": "GoogleCloudContactcenterinsightsV1BulkDeleteConversationsRequest" + }, + "response": { + "$ref": "GoogleLongrunningOperation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, "calculateStats": { "description": "Gets conversation statistics.", "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/conversations:calculateStats", @@ -1384,7 +1412,7 @@ } } }, - "revision": "20231023", + "revision": "20231031", "rootUrl": "https://contactcenterinsights.googleapis.com/", "schemas": { "GoogleCloudContactcenterinsightsV1Analysis": { @@ -1669,7 +1697,7 @@ "type": "integer" }, "partialErrors": { - "description": "Output only. Partial errors during ingest operation that might cause the operation output to be incomplete.", + "description": "Output only. Partial errors during bulk analyze operation that might cause the operation output to be incomplete.", "items": { "$ref": "GoogleRpcStatus" }, @@ -1729,6 +1757,64 @@ }, "type": "object" }, + "GoogleCloudContactcenterinsightsV1BulkDeleteConversationsMetadata": { + "description": "The metadata for a bulk delete conversations operation.", + "id": "GoogleCloudContactcenterinsightsV1BulkDeleteConversationsMetadata", + "properties": { + "createTime": { + "description": "The time the operation was created.", + "format": "google-datetime", + "type": "string" + }, + "endTime": { + "description": "The time the operation finished running.", + "format": "google-datetime", + "type": "string" + }, + "partialErrors": { + "description": "Partial errors during bulk delete conversations operation that might cause the operation output to be incomplete.", + "items": { + "$ref": "GoogleRpcStatus" + }, + "type": "array" + }, + "request": { + "$ref": "GoogleCloudContactcenterinsightsV1BulkDeleteConversationsRequest", + "description": "The original request for bulk delete." + } + }, + "type": "object" + }, + "GoogleCloudContactcenterinsightsV1BulkDeleteConversationsRequest": { + "description": "The request to delete conversations in bulk.", + "id": "GoogleCloudContactcenterinsightsV1BulkDeleteConversationsRequest", + "properties": { + "filter": { + "description": "Filter used to select the subset of conversations to analyze.", + "type": "string" + }, + "force": { + "description": "If set to true, all of this conversation's analyses will also be deleted. Otherwise, the request will only succeed if the conversation has no analyses.", + "type": "boolean" + }, + "maxDeleteCount": { + "description": "Maximum number of conversations to delete. The default is 1000. It can be changed by setting the `max_delete_count` field.", + "format": "int32", + "type": "integer" + }, + "parent": { + "description": "Required. The parent resource to create analyses in. Format: projects/{project}/locations/{location}", + "type": "string" + } + }, + "type": "object" + }, + "GoogleCloudContactcenterinsightsV1BulkDeleteConversationsResponse": { + "description": "The response for a bulk analyze conversations operation.", + "id": "GoogleCloudContactcenterinsightsV1BulkDeleteConversationsResponse", + "properties": {}, + "type": "object" + }, "GoogleCloudContactcenterinsightsV1CalculateIssueModelStatsResponse": { "description": "Response of querying an issue model's statistics.", "id": "GoogleCloudContactcenterinsightsV1CalculateIssueModelStatsResponse", @@ -2753,6 +2839,14 @@ "description": "Required. The parent resource for new conversations.", "type": "string" }, + "redactionConfig": { + "$ref": "GoogleCloudContactcenterinsightsV1RedactionConfig", + "description": "Optional. DLP settings for transcript redaction. Optional, will default to the config specified in Settings." + }, + "speechConfig": { + "$ref": "GoogleCloudContactcenterinsightsV1SpeechConfig", + "description": "Optional. Default Speech-to-Text configuration. Optional, will default to the config specified in Settings." + }, "transcriptObjectConfig": { "$ref": "GoogleCloudContactcenterinsightsV1IngestConversationsRequestTranscriptObjectConfig", "description": "Configuration for when `source` contains conversation transcripts." @@ -2764,9 +2858,19 @@ "description": "Configuration that applies to all conversations.", "id": "GoogleCloudContactcenterinsightsV1IngestConversationsRequestConversationConfig", "properties": { + "agentChannel": { + "description": "Optional. For audio conversations, this field indicates which of the channels, 1 or 2, contains the agent. Note that this must be set for audio conversations to be properly displayed and analyzed.", + "format": "int32", + "type": "integer" + }, "agentId": { "description": "An opaque, user-specified string representing the human agent who handled the conversations.", "type": "string" + }, + "customerChannel": { + "description": "Optional. For audio conversations, this field indicates which of the channels, 1 or 2, contains the customer. Note that this must be set for audio conversations to be properly displayed and analyzed.", + "format": "int32", + "type": "integer" } }, "type": "object" @@ -2775,6 +2879,20 @@ "description": "Configuration for Cloud Storage bucket sources.", "id": "GoogleCloudContactcenterinsightsV1IngestConversationsRequestGcsSource", "properties": { + "bucketObjectType": { + "description": "Optional. Specifies the type of the objects in `bucket_uri`.", + "enum": [ + "BUCKET_OBJECT_TYPE_UNSPECIFIED", + "TRANSCRIPT", + "AUDIO" + ], + "enumDescriptions": [ + "The object type is unspecified and will default to TRANSCRIPT.", + "The object is a transcript.", + "The object is an audio file." + ], + "type": "string" + }, "bucketUri": { "description": "Required. The Cloud Storage bucket containing source objects.", "type": "string" @@ -3981,7 +4099,7 @@ "type": "integer" }, "partialErrors": { - "description": "Output only. Partial errors during ingest operation that might cause the operation output to be incomplete.", + "description": "Output only. Partial errors during bulk analyze operation that might cause the operation output to be incomplete.", "items": { "$ref": "GoogleRpcStatus" }, @@ -4041,6 +4159,64 @@ }, "type": "object" }, + "GoogleCloudContactcenterinsightsV1alpha1BulkDeleteConversationsMetadata": { + "description": "The metadata for a bulk delete conversations operation.", + "id": "GoogleCloudContactcenterinsightsV1alpha1BulkDeleteConversationsMetadata", + "properties": { + "createTime": { + "description": "The time the operation was created.", + "format": "google-datetime", + "type": "string" + }, + "endTime": { + "description": "The time the operation finished running.", + "format": "google-datetime", + "type": "string" + }, + "partialErrors": { + "description": "Partial errors during bulk delete conversations operation that might cause the operation output to be incomplete.", + "items": { + "$ref": "GoogleRpcStatus" + }, + "type": "array" + }, + "request": { + "$ref": "GoogleCloudContactcenterinsightsV1alpha1BulkDeleteConversationsRequest", + "description": "The original request for bulk delete." + } + }, + "type": "object" + }, + "GoogleCloudContactcenterinsightsV1alpha1BulkDeleteConversationsRequest": { + "description": "The request to delete conversations in bulk.", + "id": "GoogleCloudContactcenterinsightsV1alpha1BulkDeleteConversationsRequest", + "properties": { + "filter": { + "description": "Filter used to select the subset of conversations to analyze.", + "type": "string" + }, + "force": { + "description": "If set to true, all of this conversation's analyses will also be deleted. Otherwise, the request will only succeed if the conversation has no analyses.", + "type": "boolean" + }, + "maxDeleteCount": { + "description": "Maximum number of conversations to delete. The default is 1000. It can be changed by setting the `max_delete_count` field.", + "format": "int32", + "type": "integer" + }, + "parent": { + "description": "Required. The parent resource to create analyses in. Format: projects/{project}/locations/{location}", + "type": "string" + } + }, + "type": "object" + }, + "GoogleCloudContactcenterinsightsV1alpha1BulkDeleteConversationsResponse": { + "description": "The response for a bulk analyze conversations operation.", + "id": "GoogleCloudContactcenterinsightsV1alpha1BulkDeleteConversationsResponse", + "properties": {}, + "type": "object" + }, "GoogleCloudContactcenterinsightsV1alpha1CallAnnotation": { "description": "A piece of metadata that applies to a window of a call.", "id": "GoogleCloudContactcenterinsightsV1alpha1CallAnnotation", @@ -4949,6 +5125,14 @@ "description": "Required. The parent resource for new conversations.", "type": "string" }, + "redactionConfig": { + "$ref": "GoogleCloudContactcenterinsightsV1alpha1RedactionConfig", + "description": "Optional. DLP settings for transcript redaction. Optional, will default to the config specified in Settings." + }, + "speechConfig": { + "$ref": "GoogleCloudContactcenterinsightsV1alpha1SpeechConfig", + "description": "Optional. Default Speech-to-Text configuration. Optional, will default to the config specified in Settings." + }, "transcriptObjectConfig": { "$ref": "GoogleCloudContactcenterinsightsV1alpha1IngestConversationsRequestTranscriptObjectConfig", "description": "Configuration for when `source` contains conversation transcripts." @@ -4960,9 +5144,19 @@ "description": "Configuration that applies to all conversations.", "id": "GoogleCloudContactcenterinsightsV1alpha1IngestConversationsRequestConversationConfig", "properties": { + "agentChannel": { + "description": "Optional. For audio conversations, this field indicates which of the channels, 1 or 2, contains the agent. Note that this must be set for audio conversations to be properly displayed and analyzed.", + "format": "int32", + "type": "integer" + }, "agentId": { "description": "An opaque, user-specified string representing the human agent who handled the conversations.", "type": "string" + }, + "customerChannel": { + "description": "Optional. For audio conversations, this field indicates which of the channels, 1 or 2, contains the customer. Note that this must be set for audio conversations to be properly displayed and analyzed.", + "format": "int32", + "type": "integer" } }, "type": "object" @@ -4971,6 +5165,20 @@ "description": "Configuration for Cloud Storage bucket sources.", "id": "GoogleCloudContactcenterinsightsV1alpha1IngestConversationsRequestGcsSource", "properties": { + "bucketObjectType": { + "description": "Optional. Specifies the type of the objects in `bucket_uri`.", + "enum": [ + "BUCKET_OBJECT_TYPE_UNSPECIFIED", + "TRANSCRIPT", + "AUDIO" + ], + "enumDescriptions": [ + "The object type is unspecified and will default to TRANSCRIPT.", + "The object is a transcript.", + "The object is an audio file." + ], + "type": "string" + }, "bucketUri": { "description": "Required. The Cloud Storage bucket containing source objects.", "type": "string" diff --git a/contactcenterinsights/v1/contactcenterinsights-gen.go b/contactcenterinsights/v1/contactcenterinsights-gen.go index 38b3ebc910b..fd5a458b83b 100644 --- a/contactcenterinsights/v1/contactcenterinsights-gen.go +++ b/contactcenterinsights/v1/contactcenterinsights-gen.go @@ -674,8 +674,8 @@ type GoogleCloudContactcenterinsightsV1BulkAnalyzeConversationsMetadata struct { // failed so far. FailedAnalysesCount int64 `json:"failedAnalysesCount,omitempty"` - // PartialErrors: Output only. Partial errors during ingest operation - // that might cause the operation output to be incomplete. + // PartialErrors: Output only. Partial errors during bulk analyze + // operation that might cause the operation output to be incomplete. PartialErrors []*GoogleRpcStatus `json:"partialErrors,omitempty"` // Request: The original request for bulk analyze. @@ -801,6 +801,93 @@ func (s *GoogleCloudContactcenterinsightsV1BulkAnalyzeConversationsResponse) Mar return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) } +// GoogleCloudContactcenterinsightsV1BulkDeleteConversationsMetadata: +// The metadata for a bulk delete conversations operation. +type GoogleCloudContactcenterinsightsV1BulkDeleteConversationsMetadata struct { + // CreateTime: The time the operation was created. + CreateTime string `json:"createTime,omitempty"` + + // EndTime: The time the operation finished running. + EndTime string `json:"endTime,omitempty"` + + // PartialErrors: Partial errors during bulk delete conversations + // operation that might cause the operation output to be incomplete. + PartialErrors []*GoogleRpcStatus `json:"partialErrors,omitempty"` + + // Request: The original request for bulk delete. + Request *GoogleCloudContactcenterinsightsV1BulkDeleteConversationsRequest `json:"request,omitempty"` + + // ForceSendFields is a list of field names (e.g. "CreateTime") to + // unconditionally include in API requests. By default, fields with + // empty or default values are omitted from API requests. However, any + // non-pointer, non-interface field appearing in ForceSendFields will be + // sent to the server regardless of whether the field is empty or not. + // This may be used to include empty fields in Patch requests. + ForceSendFields []string `json:"-"` + + // NullFields is a list of field names (e.g. "CreateTime") to include in + // API requests with the JSON null value. By default, fields with empty + // values are omitted from API requests. However, any field with an + // empty value appearing in NullFields will be sent to the server as + // null. It is an error if a field in this list has a non-empty value. + // This may be used to include null fields in Patch requests. + NullFields []string `json:"-"` +} + +func (s *GoogleCloudContactcenterinsightsV1BulkDeleteConversationsMetadata) MarshalJSON() ([]byte, error) { + type NoMethod GoogleCloudContactcenterinsightsV1BulkDeleteConversationsMetadata + raw := NoMethod(*s) + return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) +} + +// GoogleCloudContactcenterinsightsV1BulkDeleteConversationsRequest: The +// request to delete conversations in bulk. +type GoogleCloudContactcenterinsightsV1BulkDeleteConversationsRequest struct { + // Filter: Filter used to select the subset of conversations to analyze. + Filter string `json:"filter,omitempty"` + + // Force: If set to true, all of this conversation's analyses will also + // be deleted. Otherwise, the request will only succeed if the + // conversation has no analyses. + Force bool `json:"force,omitempty"` + + // MaxDeleteCount: Maximum number of conversations to delete. The + // default is 1000. It can be changed by setting the `max_delete_count` + // field. + MaxDeleteCount int64 `json:"maxDeleteCount,omitempty"` + + // Parent: Required. The parent resource to create analyses in. Format: + // projects/{project}/locations/{location} + Parent string `json:"parent,omitempty"` + + // ForceSendFields is a list of field names (e.g. "Filter") to + // unconditionally include in API requests. By default, fields with + // empty or default values are omitted from API requests. However, any + // non-pointer, non-interface field appearing in ForceSendFields will be + // sent to the server regardless of whether the field is empty or not. + // This may be used to include empty fields in Patch requests. + ForceSendFields []string `json:"-"` + + // NullFields is a list of field names (e.g. "Filter") to include in API + // requests with the JSON null value. By default, fields with empty + // values are omitted from API requests. However, any field with an + // empty value appearing in NullFields will be sent to the server as + // null. It is an error if a field in this list has a non-empty value. + // This may be used to include null fields in Patch requests. + NullFields []string `json:"-"` +} + +func (s *GoogleCloudContactcenterinsightsV1BulkDeleteConversationsRequest) MarshalJSON() ([]byte, error) { + type NoMethod GoogleCloudContactcenterinsightsV1BulkDeleteConversationsRequest + raw := NoMethod(*s) + return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) +} + +// GoogleCloudContactcenterinsightsV1BulkDeleteConversationsResponse: +// The response for a bulk analyze conversations operation. +type GoogleCloudContactcenterinsightsV1BulkDeleteConversationsResponse struct { +} + // GoogleCloudContactcenterinsightsV1CalculateIssueModelStatsResponse: // Response of querying an issue model's statistics. type GoogleCloudContactcenterinsightsV1CalculateIssueModelStatsResponse struct { @@ -2438,6 +2525,14 @@ type GoogleCloudContactcenterinsightsV1IngestConversationsRequest struct { // Parent: Required. The parent resource for new conversations. Parent string `json:"parent,omitempty"` + // RedactionConfig: Optional. DLP settings for transcript redaction. + // Optional, will default to the config specified in Settings. + RedactionConfig *GoogleCloudContactcenterinsightsV1RedactionConfig `json:"redactionConfig,omitempty"` + + // SpeechConfig: Optional. Default Speech-to-Text configuration. + // Optional, will default to the config specified in Settings. + SpeechConfig *GoogleCloudContactcenterinsightsV1SpeechConfig `json:"speechConfig,omitempty"` + // TranscriptObjectConfig: Configuration for when `source` contains // conversation transcripts. TranscriptObjectConfig *GoogleCloudContactcenterinsightsV1IngestConversationsRequestTranscriptObjectConfig `json:"transcriptObjectConfig,omitempty"` @@ -2469,11 +2564,23 @@ func (s *GoogleCloudContactcenterinsightsV1IngestConversationsRequest) MarshalJS // GoogleCloudContactcenterinsightsV1IngestConversationsRequestConversati // onConfig: Configuration that applies to all conversations. type GoogleCloudContactcenterinsightsV1IngestConversationsRequestConversationConfig struct { + // AgentChannel: Optional. For audio conversations, this field indicates + // which of the channels, 1 or 2, contains the agent. Note that this + // must be set for audio conversations to be properly displayed and + // analyzed. + AgentChannel int64 `json:"agentChannel,omitempty"` + // AgentId: An opaque, user-specified string representing the human // agent who handled the conversations. AgentId string `json:"agentId,omitempty"` - // ForceSendFields is a list of field names (e.g. "AgentId") to + // CustomerChannel: Optional. For audio conversations, this field + // indicates which of the channels, 1 or 2, contains the customer. Note + // that this must be set for audio conversations to be properly + // displayed and analyzed. + CustomerChannel int64 `json:"customerChannel,omitempty"` + + // ForceSendFields is a list of field names (e.g. "AgentChannel") to // unconditionally include in API requests. By default, fields with // empty or default values are omitted from API requests. However, any // non-pointer, non-interface field appearing in ForceSendFields will be @@ -2481,10 +2588,10 @@ type GoogleCloudContactcenterinsightsV1IngestConversationsRequestConversationCon // This may be used to include empty fields in Patch requests. ForceSendFields []string `json:"-"` - // NullFields is a list of field names (e.g. "AgentId") to include in - // API requests with the JSON null value. By default, fields with empty - // values are omitted from API requests. However, any field with an - // empty value appearing in NullFields will be sent to the server as + // NullFields is a list of field names (e.g. "AgentChannel") to include + // in API requests with the JSON null value. By default, fields with + // empty values are omitted from API requests. However, any field with + // an empty value appearing in NullFields will be sent to the server as // null. It is an error if a field in this list has a non-empty value. // This may be used to include null fields in Patch requests. NullFields []string `json:"-"` @@ -2500,11 +2607,21 @@ func (s *GoogleCloudContactcenterinsightsV1IngestConversationsRequestConversatio // // Configuration for Cloud Storage bucket sources. type GoogleCloudContactcenterinsightsV1IngestConversationsRequestGcsSource struct { + // BucketObjectType: Optional. Specifies the type of the objects in + // `bucket_uri`. + // + // Possible values: + // "BUCKET_OBJECT_TYPE_UNSPECIFIED" - The object type is unspecified + // and will default to TRANSCRIPT. + // "TRANSCRIPT" - The object is a transcript. + // "AUDIO" - The object is an audio file. + BucketObjectType string `json:"bucketObjectType,omitempty"` + // BucketUri: Required. The Cloud Storage bucket containing source // objects. BucketUri string `json:"bucketUri,omitempty"` - // ForceSendFields is a list of field names (e.g. "BucketUri") to + // ForceSendFields is a list of field names (e.g. "BucketObjectType") to // unconditionally include in API requests. By default, fields with // empty or default values are omitted from API requests. However, any // non-pointer, non-interface field appearing in ForceSendFields will be @@ -2512,12 +2629,13 @@ type GoogleCloudContactcenterinsightsV1IngestConversationsRequestGcsSource struc // This may be used to include empty fields in Patch requests. ForceSendFields []string `json:"-"` - // NullFields is a list of field names (e.g. "BucketUri") to include in - // API requests with the JSON null value. By default, fields with empty - // values are omitted from API requests. However, any field with an - // empty value appearing in NullFields will be sent to the server as - // null. It is an error if a field in this list has a non-empty value. - // This may be used to include null fields in Patch requests. + // NullFields is a list of field names (e.g. "BucketObjectType") to + // include in API requests with the JSON null value. By default, fields + // with empty values are omitted from API requests. However, any field + // with an empty value appearing in NullFields will be sent to the + // server as null. It is an error if a field in this list has a + // non-empty value. This may be used to include null fields in Patch + // requests. NullFields []string `json:"-"` } @@ -4506,8 +4624,8 @@ type GoogleCloudContactcenterinsightsV1alpha1BulkAnalyzeConversationsMetadata st // failed so far. FailedAnalysesCount int64 `json:"failedAnalysesCount,omitempty"` - // PartialErrors: Output only. Partial errors during ingest operation - // that might cause the operation output to be incomplete. + // PartialErrors: Output only. Partial errors during bulk analyze + // operation that might cause the operation output to be incomplete. PartialErrors []*GoogleRpcStatus `json:"partialErrors,omitempty"` // Request: The original request for bulk analyze. @@ -4633,6 +4751,93 @@ func (s *GoogleCloudContactcenterinsightsV1alpha1BulkAnalyzeConversationsRespons return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) } +// GoogleCloudContactcenterinsightsV1alpha1BulkDeleteConversationsMetadat +// a: The metadata for a bulk delete conversations operation. +type GoogleCloudContactcenterinsightsV1alpha1BulkDeleteConversationsMetadata struct { + // CreateTime: The time the operation was created. + CreateTime string `json:"createTime,omitempty"` + + // EndTime: The time the operation finished running. + EndTime string `json:"endTime,omitempty"` + + // PartialErrors: Partial errors during bulk delete conversations + // operation that might cause the operation output to be incomplete. + PartialErrors []*GoogleRpcStatus `json:"partialErrors,omitempty"` + + // Request: The original request for bulk delete. + Request *GoogleCloudContactcenterinsightsV1alpha1BulkDeleteConversationsRequest `json:"request,omitempty"` + + // ForceSendFields is a list of field names (e.g. "CreateTime") to + // unconditionally include in API requests. By default, fields with + // empty or default values are omitted from API requests. However, any + // non-pointer, non-interface field appearing in ForceSendFields will be + // sent to the server regardless of whether the field is empty or not. + // This may be used to include empty fields in Patch requests. + ForceSendFields []string `json:"-"` + + // NullFields is a list of field names (e.g. "CreateTime") to include in + // API requests with the JSON null value. By default, fields with empty + // values are omitted from API requests. However, any field with an + // empty value appearing in NullFields will be sent to the server as + // null. It is an error if a field in this list has a non-empty value. + // This may be used to include null fields in Patch requests. + NullFields []string `json:"-"` +} + +func (s *GoogleCloudContactcenterinsightsV1alpha1BulkDeleteConversationsMetadata) MarshalJSON() ([]byte, error) { + type NoMethod GoogleCloudContactcenterinsightsV1alpha1BulkDeleteConversationsMetadata + raw := NoMethod(*s) + return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) +} + +// GoogleCloudContactcenterinsightsV1alpha1BulkDeleteConversationsRequest +// : The request to delete conversations in bulk. +type GoogleCloudContactcenterinsightsV1alpha1BulkDeleteConversationsRequest struct { + // Filter: Filter used to select the subset of conversations to analyze. + Filter string `json:"filter,omitempty"` + + // Force: If set to true, all of this conversation's analyses will also + // be deleted. Otherwise, the request will only succeed if the + // conversation has no analyses. + Force bool `json:"force,omitempty"` + + // MaxDeleteCount: Maximum number of conversations to delete. The + // default is 1000. It can be changed by setting the `max_delete_count` + // field. + MaxDeleteCount int64 `json:"maxDeleteCount,omitempty"` + + // Parent: Required. The parent resource to create analyses in. Format: + // projects/{project}/locations/{location} + Parent string `json:"parent,omitempty"` + + // ForceSendFields is a list of field names (e.g. "Filter") to + // unconditionally include in API requests. By default, fields with + // empty or default values are omitted from API requests. However, any + // non-pointer, non-interface field appearing in ForceSendFields will be + // sent to the server regardless of whether the field is empty or not. + // This may be used to include empty fields in Patch requests. + ForceSendFields []string `json:"-"` + + // NullFields is a list of field names (e.g. "Filter") to include in API + // requests with the JSON null value. By default, fields with empty + // values are omitted from API requests. However, any field with an + // empty value appearing in NullFields will be sent to the server as + // null. It is an error if a field in this list has a non-empty value. + // This may be used to include null fields in Patch requests. + NullFields []string `json:"-"` +} + +func (s *GoogleCloudContactcenterinsightsV1alpha1BulkDeleteConversationsRequest) MarshalJSON() ([]byte, error) { + type NoMethod GoogleCloudContactcenterinsightsV1alpha1BulkDeleteConversationsRequest + raw := NoMethod(*s) + return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) +} + +// GoogleCloudContactcenterinsightsV1alpha1BulkDeleteConversationsRespons +// e: The response for a bulk analyze conversations operation. +type GoogleCloudContactcenterinsightsV1alpha1BulkDeleteConversationsResponse struct { +} + // GoogleCloudContactcenterinsightsV1alpha1CallAnnotation: A piece of // metadata that applies to a window of a call. type GoogleCloudContactcenterinsightsV1alpha1CallAnnotation struct { @@ -6064,6 +6269,14 @@ type GoogleCloudContactcenterinsightsV1alpha1IngestConversationsRequest struct { // Parent: Required. The parent resource for new conversations. Parent string `json:"parent,omitempty"` + // RedactionConfig: Optional. DLP settings for transcript redaction. + // Optional, will default to the config specified in Settings. + RedactionConfig *GoogleCloudContactcenterinsightsV1alpha1RedactionConfig `json:"redactionConfig,omitempty"` + + // SpeechConfig: Optional. Default Speech-to-Text configuration. + // Optional, will default to the config specified in Settings. + SpeechConfig *GoogleCloudContactcenterinsightsV1alpha1SpeechConfig `json:"speechConfig,omitempty"` + // TranscriptObjectConfig: Configuration for when `source` contains // conversation transcripts. TranscriptObjectConfig *GoogleCloudContactcenterinsightsV1alpha1IngestConversationsRequestTranscriptObjectConfig `json:"transcriptObjectConfig,omitempty"` @@ -6095,11 +6308,23 @@ func (s *GoogleCloudContactcenterinsightsV1alpha1IngestConversationsRequest) Mar // GoogleCloudContactcenterinsightsV1alpha1IngestConversationsRequestConv // ersationConfig: Configuration that applies to all conversations. type GoogleCloudContactcenterinsightsV1alpha1IngestConversationsRequestConversationConfig struct { + // AgentChannel: Optional. For audio conversations, this field indicates + // which of the channels, 1 or 2, contains the agent. Note that this + // must be set for audio conversations to be properly displayed and + // analyzed. + AgentChannel int64 `json:"agentChannel,omitempty"` + // AgentId: An opaque, user-specified string representing the human // agent who handled the conversations. AgentId string `json:"agentId,omitempty"` - // ForceSendFields is a list of field names (e.g. "AgentId") to + // CustomerChannel: Optional. For audio conversations, this field + // indicates which of the channels, 1 or 2, contains the customer. Note + // that this must be set for audio conversations to be properly + // displayed and analyzed. + CustomerChannel int64 `json:"customerChannel,omitempty"` + + // ForceSendFields is a list of field names (e.g. "AgentChannel") to // unconditionally include in API requests. By default, fields with // empty or default values are omitted from API requests. However, any // non-pointer, non-interface field appearing in ForceSendFields will be @@ -6107,10 +6332,10 @@ type GoogleCloudContactcenterinsightsV1alpha1IngestConversationsRequestConversat // This may be used to include empty fields in Patch requests. ForceSendFields []string `json:"-"` - // NullFields is a list of field names (e.g. "AgentId") to include in - // API requests with the JSON null value. By default, fields with empty - // values are omitted from API requests. However, any field with an - // empty value appearing in NullFields will be sent to the server as + // NullFields is a list of field names (e.g. "AgentChannel") to include + // in API requests with the JSON null value. By default, fields with + // empty values are omitted from API requests. However, any field with + // an empty value appearing in NullFields will be sent to the server as // null. It is an error if a field in this list has a non-empty value. // This may be used to include null fields in Patch requests. NullFields []string `json:"-"` @@ -6125,11 +6350,21 @@ func (s *GoogleCloudContactcenterinsightsV1alpha1IngestConversationsRequestConve // GoogleCloudContactcenterinsightsV1alpha1IngestConversationsRequestGcsS // ource: Configuration for Cloud Storage bucket sources. type GoogleCloudContactcenterinsightsV1alpha1IngestConversationsRequestGcsSource struct { + // BucketObjectType: Optional. Specifies the type of the objects in + // `bucket_uri`. + // + // Possible values: + // "BUCKET_OBJECT_TYPE_UNSPECIFIED" - The object type is unspecified + // and will default to TRANSCRIPT. + // "TRANSCRIPT" - The object is a transcript. + // "AUDIO" - The object is an audio file. + BucketObjectType string `json:"bucketObjectType,omitempty"` + // BucketUri: Required. The Cloud Storage bucket containing source // objects. BucketUri string `json:"bucketUri,omitempty"` - // ForceSendFields is a list of field names (e.g. "BucketUri") to + // ForceSendFields is a list of field names (e.g. "BucketObjectType") to // unconditionally include in API requests. By default, fields with // empty or default values are omitted from API requests. However, any // non-pointer, non-interface field appearing in ForceSendFields will be @@ -6137,12 +6372,13 @@ type GoogleCloudContactcenterinsightsV1alpha1IngestConversationsRequestGcsSource // This may be used to include empty fields in Patch requests. ForceSendFields []string `json:"-"` - // NullFields is a list of field names (e.g. "BucketUri") to include in - // API requests with the JSON null value. By default, fields with empty - // values are omitted from API requests. However, any field with an - // empty value appearing in NullFields will be sent to the server as - // null. It is an error if a field in this list has a non-empty value. - // This may be used to include null fields in Patch requests. + // NullFields is a list of field names (e.g. "BucketObjectType") to + // include in API requests with the JSON null value. By default, fields + // with empty values are omitted from API requests. However, any field + // with an empty value appearing in NullFields will be sent to the + // server as null. It is an error if a field in this list has a + // non-empty value. This may be used to include null fields in Patch + // requests. NullFields []string `json:"-"` } @@ -7678,6 +7914,149 @@ func (c *ProjectsLocationsConversationsBulkAnalyzeCall) Do(opts ...googleapi.Cal } +// method id "contactcenterinsights.projects.locations.conversations.bulkDelete": + +type ProjectsLocationsConversationsBulkDeleteCall struct { + s *Service + parent string + googlecloudcontactcenterinsightsv1bulkdeleteconversationsrequest *GoogleCloudContactcenterinsightsV1BulkDeleteConversationsRequest + urlParams_ gensupport.URLParams + ctx_ context.Context + header_ http.Header +} + +// BulkDelete: Deletes multiple conversations in a single request. +// +// - parent: The parent resource to create analyses in. Format: +// projects/{project}/locations/{location}. +func (r *ProjectsLocationsConversationsService) BulkDelete(parent string, googlecloudcontactcenterinsightsv1bulkdeleteconversationsrequest *GoogleCloudContactcenterinsightsV1BulkDeleteConversationsRequest) *ProjectsLocationsConversationsBulkDeleteCall { + c := &ProjectsLocationsConversationsBulkDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)} + c.parent = parent + c.googlecloudcontactcenterinsightsv1bulkdeleteconversationsrequest = googlecloudcontactcenterinsightsv1bulkdeleteconversationsrequest + return c +} + +// Fields allows partial responses to be retrieved. See +// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse +// for more information. +func (c *ProjectsLocationsConversationsBulkDeleteCall) Fields(s ...googleapi.Field) *ProjectsLocationsConversationsBulkDeleteCall { + c.urlParams_.Set("fields", googleapi.CombineFields(s)) + return c +} + +// Context sets the context to be used in this call's Do method. Any +// pending HTTP request will be aborted if the provided context is +// canceled. +func (c *ProjectsLocationsConversationsBulkDeleteCall) Context(ctx context.Context) *ProjectsLocationsConversationsBulkDeleteCall { + c.ctx_ = ctx + return c +} + +// Header returns an http.Header that can be modified by the caller to +// add HTTP headers to the request. +func (c *ProjectsLocationsConversationsBulkDeleteCall) Header() http.Header { + if c.header_ == nil { + c.header_ = make(http.Header) + } + return c.header_ +} + +func (c *ProjectsLocationsConversationsBulkDeleteCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := make(http.Header) + reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/"+internal.Version) + for k, v := range c.header_ { + reqHeaders[k] = v + } + reqHeaders.Set("User-Agent", c.s.userAgent()) + var body io.Reader = nil + body, err := googleapi.WithoutDataWrapper.JSONReader(c.googlecloudcontactcenterinsightsv1bulkdeleteconversationsrequest) + if err != nil { + return nil, err + } + reqHeaders.Set("Content-Type", "application/json") + c.urlParams_.Set("alt", alt) + c.urlParams_.Set("prettyPrint", "false") + urls := googleapi.ResolveRelative(c.s.BasePath, "v1/{+parent}/conversations:bulkDelete") + urls += "?" + c.urlParams_.Encode() + req, err := http.NewRequest("POST", urls, body) + if err != nil { + return nil, err + } + req.Header = reqHeaders + googleapi.Expand(req.URL, map[string]string{ + "parent": c.parent, + }) + return gensupport.SendRequest(c.ctx_, c.s.client, req) +} + +// Do executes the "contactcenterinsights.projects.locations.conversations.bulkDelete" call. +// Exactly one of *GoogleLongrunningOperation or error will be non-nil. +// Any non-2xx status code is an error. Response headers are in either +// *GoogleLongrunningOperation.ServerResponse.Header or (if a response +// was returned at all) in error.(*googleapi.Error).Header. Use +// googleapi.IsNotModified to check whether the returned error was +// because http.StatusNotModified was returned. +func (c *ProjectsLocationsConversationsBulkDeleteCall) Do(opts ...googleapi.CallOption) (*GoogleLongrunningOperation, error) { + gensupport.SetOptions(c.urlParams_, opts...) + res, err := c.doRequest("json") + if res != nil && res.StatusCode == http.StatusNotModified { + if res.Body != nil { + res.Body.Close() + } + return nil, gensupport.WrapError(&googleapi.Error{ + Code: res.StatusCode, + Header: res.Header, + }) + } + if err != nil { + return nil, err + } + defer googleapi.CloseBody(res) + if err := googleapi.CheckResponse(res); err != nil { + return nil, gensupport.WrapError(err) + } + ret := &GoogleLongrunningOperation{ + ServerResponse: googleapi.ServerResponse{ + Header: res.Header, + HTTPStatusCode: res.StatusCode, + }, + } + target := &ret + if err := gensupport.DecodeResponse(target, res); err != nil { + return nil, err + } + return ret, nil + // { + // "description": "Deletes multiple conversations in a single request.", + // "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/conversations:bulkDelete", + // "httpMethod": "POST", + // "id": "contactcenterinsights.projects.locations.conversations.bulkDelete", + // "parameterOrder": [ + // "parent" + // ], + // "parameters": { + // "parent": { + // "description": "Required. The parent resource to create analyses in. Format: projects/{project}/locations/{location}", + // "location": "path", + // "pattern": "^projects/[^/]+/locations/[^/]+$", + // "required": true, + // "type": "string" + // } + // }, + // "path": "v1/{+parent}/conversations:bulkDelete", + // "request": { + // "$ref": "GoogleCloudContactcenterinsightsV1BulkDeleteConversationsRequest" + // }, + // "response": { + // "$ref": "GoogleLongrunningOperation" + // }, + // "scopes": [ + // "https://www.googleapis.com/auth/cloud-platform" + // ] + // } + +} + // method id "contactcenterinsights.projects.locations.conversations.calculateStats": type ProjectsLocationsConversationsCalculateStatsCall struct { diff --git a/content/v2.1/content-api.json b/content/v2.1/content-api.json index 3c7f68d3aab..95806fff20d 100644 --- a/content/v2.1/content-api.json +++ b/content/v2.1/content-api.json @@ -6488,7 +6488,7 @@ } } }, - "revision": "20231030", + "revision": "20231031", "rootUrl": "https://shoppingcontent.googleapis.com/", "schemas": { "Account": { @@ -6808,7 +6808,12 @@ "AccountIdentityType": { "description": "The account identity type used to specify attributes.", "id": "AccountIdentityType", - "properties": {}, + "properties": { + "selfIdentified": { + "description": "Optional. Indicates that the business identifies itself with a given identity type. Setting this field does not automatically mean eligibility for promotions.", + "type": "boolean" + } + }, "type": "object" }, "AccountImageImprovements": { diff --git a/content/v2.1/content-gen.go b/content/v2.1/content-gen.go index 42f8d1f82fc..430d2ae7c69 100644 --- a/content/v2.1/content-gen.go +++ b/content/v2.1/content-gen.go @@ -1244,6 +1244,33 @@ func (s *AccountIdentifier) MarshalJSON() ([]byte, error) { // AccountIdentityType: The account identity type used to specify // attributes. type AccountIdentityType struct { + // SelfIdentified: Optional. Indicates that the business identifies + // itself with a given identity type. Setting this field does not + // automatically mean eligibility for promotions. + SelfIdentified bool `json:"selfIdentified,omitempty"` + + // ForceSendFields is a list of field names (e.g. "SelfIdentified") to + // unconditionally include in API requests. By default, fields with + // empty or default values are omitted from API requests. However, any + // non-pointer, non-interface field appearing in ForceSendFields will be + // sent to the server regardless of whether the field is empty or not. + // This may be used to include empty fields in Patch requests. + ForceSendFields []string `json:"-"` + + // NullFields is a list of field names (e.g. "SelfIdentified") to + // include in API requests with the JSON null value. By default, fields + // with empty values are omitted from API requests. However, any field + // with an empty value appearing in NullFields will be sent to the + // server as null. It is an error if a field in this list has a + // non-empty value. This may be used to include null fields in Patch + // requests. + NullFields []string `json:"-"` +} + +func (s *AccountIdentityType) MarshalJSON() ([]byte, error) { + type NoMethod AccountIdentityType + raw := NoMethod(*s) + return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) } // AccountImageImprovements: This improvement will attempt to diff --git a/iam/v1/iam-api.json b/iam/v1/iam-api.json index 4cf145f239f..2d8361f3303 100644 --- a/iam/v1/iam-api.json +++ b/iam/v1/iam-api.json @@ -2850,9 +2850,27 @@ } } }, - "revision": "20230914", + "revision": "20231026", "rootUrl": "https://iam.googleapis.com/", "schemas": { + "AccessRestrictions": { + "description": "Access related restrictions on the workforce pool.", + "id": "AccessRestrictions", + "properties": { + "allowedServices": { + "description": "Optional. Immutable. Services allowed for web sign-in with the workforce pool. If not set by default there are no restrictions.", + "items": { + "$ref": "ServiceConfig" + }, + "type": "array" + }, + "disableProgrammaticSignin": { + "description": "Optional. Disable programmatic sign-in by disabling token issue via the Security Token API endpoint. See [Security Token Service API] (https://cloud.google.com/iam/docs/reference/sts/rest).", + "type": "boolean" + } + }, + "type": "object" + }, "AdminAuditData": { "description": "Audit log information specific to Cloud IAM admin APIs. This message is serialized as an `Any` type in the `ServiceData` message of an `AuditLog` message.", "id": "AdminAuditData", @@ -4105,6 +4123,17 @@ }, "type": "object" }, + "ServiceConfig": { + "description": "Configuration for a service.", + "id": "ServiceConfig", + "properties": { + "domain": { + "description": "Optional. Domain name of the service. Example: console.cloud.google", + "type": "string" + } + }, + "type": "object" + }, "SetIamPolicyRequest": { "description": "Request message for `SetIamPolicy` method.", "id": "SetIamPolicyRequest", @@ -4322,6 +4351,10 @@ "description": "Represents a collection of external workforces. Provides namespaces for federated users that can be referenced in IAM policies.", "id": "WorkforcePool", "properties": { + "accessRestrictions": { + "$ref": "AccessRestrictions", + "description": "Optional. Configure access restrictions on the workforce pool users. This is an optional field. If specified web sign-in can be restricted to given set of services or programmatic sign-in can be disabled for pool users." + }, "description": { "description": "A user-specified description of the pool. Cannot exceed 256 characters.", "type": "string" diff --git a/iam/v1/iam-gen.go b/iam/v1/iam-gen.go index 2f0e3c1eac2..8d7a992fd69 100644 --- a/iam/v1/iam-gen.go +++ b/iam/v1/iam-gen.go @@ -520,6 +520,44 @@ type RolesService struct { s *Service } +// AccessRestrictions: Access related restrictions on the workforce +// pool. +type AccessRestrictions struct { + // AllowedServices: Optional. Immutable. Services allowed for web + // sign-in with the workforce pool. If not set by default there are no + // restrictions. + AllowedServices []*ServiceConfig `json:"allowedServices,omitempty"` + + // DisableProgrammaticSignin: Optional. Disable programmatic sign-in by + // disabling token issue via the Security Token API endpoint. See + // [Security Token Service API] + // (https://cloud.google.com/iam/docs/reference/sts/rest). + DisableProgrammaticSignin bool `json:"disableProgrammaticSignin,omitempty"` + + // ForceSendFields is a list of field names (e.g. "AllowedServices") to + // unconditionally include in API requests. By default, fields with + // empty or default values are omitted from API requests. However, any + // non-pointer, non-interface field appearing in ForceSendFields will be + // sent to the server regardless of whether the field is empty or not. + // This may be used to include empty fields in Patch requests. + ForceSendFields []string `json:"-"` + + // NullFields is a list of field names (e.g. "AllowedServices") to + // include in API requests with the JSON null value. By default, fields + // with empty values are omitted from API requests. However, any field + // with an empty value appearing in NullFields will be sent to the + // server as null. It is an error if a field in this list has a + // non-empty value. This may be used to include null fields in Patch + // requests. + NullFields []string `json:"-"` +} + +func (s *AccessRestrictions) MarshalJSON() ([]byte, error) { + type NoMethod AccessRestrictions + raw := NoMethod(*s) + return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) +} + // AdminAuditData: Audit log information specific to Cloud IAM admin // APIs. This message is serialized as an `Any` type in the // `ServiceData` message of an `AuditLog` message. @@ -2890,6 +2928,35 @@ func (s *ServiceAccountKey) MarshalJSON() ([]byte, error) { return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) } +// ServiceConfig: Configuration for a service. +type ServiceConfig struct { + // Domain: Optional. Domain name of the service. Example: + // console.cloud.google + Domain string `json:"domain,omitempty"` + + // ForceSendFields is a list of field names (e.g. "Domain") to + // unconditionally include in API requests. By default, fields with + // empty or default values are omitted from API requests. However, any + // non-pointer, non-interface field appearing in ForceSendFields will be + // sent to the server regardless of whether the field is empty or not. + // This may be used to include empty fields in Patch requests. + ForceSendFields []string `json:"-"` + + // NullFields is a list of field names (e.g. "Domain") to include in API + // requests with the JSON null value. By default, fields with empty + // values are omitted from API requests. However, any field with an + // empty value appearing in NullFields will be sent to the server as + // null. It is an error if a field in this list has a non-empty value. + // This may be used to include null fields in Patch requests. + NullFields []string `json:"-"` +} + +func (s *ServiceConfig) MarshalJSON() ([]byte, error) { + type NoMethod ServiceConfig + raw := NoMethod(*s) + return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) +} + // SetIamPolicyRequest: Request message for `SetIamPolicy` method. type SetIamPolicyRequest struct { // Policy: REQUIRED: The complete policy to be applied to the @@ -3325,6 +3392,12 @@ func (s *UploadServiceAccountKeyRequest) MarshalJSON() ([]byte, error) { // Provides namespaces for federated users that can be referenced in IAM // policies. type WorkforcePool struct { + // AccessRestrictions: Optional. Configure access restrictions on the + // workforce pool users. This is an optional field. If specified web + // sign-in can be restricted to given set of services or programmatic + // sign-in can be disabled for pool users. + AccessRestrictions *AccessRestrictions `json:"accessRestrictions,omitempty"` + // Description: A user-specified description of the pool. Cannot exceed // 256 characters. Description string `json:"description,omitempty"` @@ -3379,20 +3452,21 @@ type WorkforcePool struct { // server. googleapi.ServerResponse `json:"-"` - // ForceSendFields is a list of field names (e.g. "Description") to - // unconditionally include in API requests. By default, fields with + // ForceSendFields is a list of field names (e.g. "AccessRestrictions") + // to unconditionally include in API requests. By default, fields with // empty or default values are omitted from API requests. However, any // non-pointer, non-interface field appearing in ForceSendFields will be // sent to the server regardless of whether the field is empty or not. // This may be used to include empty fields in Patch requests. ForceSendFields []string `json:"-"` - // NullFields is a list of field names (e.g. "Description") to include - // in API requests with the JSON null value. By default, fields with - // empty values are omitted from API requests. However, any field with - // an empty value appearing in NullFields will be sent to the server as - // null. It is an error if a field in this list has a non-empty value. - // This may be used to include null fields in Patch requests. + // NullFields is a list of field names (e.g. "AccessRestrictions") to + // include in API requests with the JSON null value. By default, fields + // with empty values are omitted from API requests. However, any field + // with an empty value appearing in NullFields will be sent to the + // server as null. It is an error if a field in this list has a + // non-empty value. This may be used to include null fields in Patch + // requests. NullFields []string `json:"-"` } diff --git a/storage/v1/storage-api.json b/storage/v1/storage-api.json index 2af5c30f44e..5481a74cbbd 100644 --- a/storage/v1/storage-api.json +++ b/storage/v1/storage-api.json @@ -26,7 +26,7 @@ "description": "Stores and retrieves potentially large, immutable data objects.", "discoveryVersion": "v1", "documentationLink": "https://developers.google.com/storage/docs/json_api/", - "etag": "\"3133333835393639383131353638313238353437\"", + "etag": "\"39383633393336373936373236333033393737\"", "icons": { "x16": "https://www.google.com/images/icons/product/cloud_storage-16.png", "x32": "https://www.google.com/images/icons/product/cloud_storage-32.png" @@ -92,6 +92,242 @@ }, "protocol": "rest", "resources": { + "anywhereCache": { + "methods": { + "disable": { + "description": "Disables an Anywhere Cache instance.", + "httpMethod": "POST", + "id": "storage.anywhereCaches.disable", + "parameterOrder": [ + "bucket", + "anywhereCacheId" + ], + "parameters": { + "anywhereCacheId": { + "description": "The ID of requested Anywhere Cache instance.", + "location": "path", + "required": true, + "type": "string" + }, + "bucket": { + "description": "Name of the partent bucket", + "location": "path", + "required": true, + "type": "string" + } + }, + "path": "b/{bucket}/anywhereCaches/{anywhereCacheId}/disable", + "response": { + "$ref": "AnywhereCache" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/devstorage.full_control", + "https://www.googleapis.com/auth/devstorage.read_write" + ] + }, + "get": { + "description": "Returns the metadata of an Anywhere Cache instance.", + "httpMethod": "GET", + "id": "storage.anywhereCaches.get", + "parameterOrder": [ + "bucket", + "anywhereCacheId" + ], + "parameters": { + "anywhereCacheId": { + "description": "The ID of requested Anywhere Cache instance.", + "location": "path", + "required": true, + "type": "string" + }, + "bucket": { + "description": "Name of the partent bucket", + "location": "path", + "required": true, + "type": "string" + } + }, + "path": "b/{bucket}/anywhereCaches/{anywhereCacheId}", + "response": { + "$ref": "AnywhereCache" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/cloud-platform.read-only", + "https://www.googleapis.com/auth/devstorage.full_control", + "https://www.googleapis.com/auth/devstorage.read_only", + "https://www.googleapis.com/auth/devstorage.read_write" + ] + }, + "insert": { + "description": "Creates an Anywhere Cache instance.", + "httpMethod": "POST", + "id": "storage.anywhereCaches.insert", + "parameterOrder": [ + "bucket" + ], + "parameters": { + "bucket": { + "description": "Name of the partent bucket", + "location": "path", + "required": true, + "type": "string" + } + }, + "path": "b/{bucket}/anywhereCaches", + "request": { + "$ref": "AnywhereCache" + }, + "response": { + "$ref": "GoogleLongrunningOperation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/devstorage.full_control", + "https://www.googleapis.com/auth/devstorage.read_write" + ] + }, + "list": { + "description": "Returns a list of Anywhere Cache instances of the bucket matching the criteria.", + "httpMethod": "GET", + "id": "storage.anywhereCaches.list", + "parameterOrder": [ + "bucket" + ], + "parameters": { + "bucket": { + "description": "Name of the partent bucket", + "location": "path", + "required": true, + "type": "string" + }, + "pageSize": { + "description": "Maximum number of items return in a single page of responses. Maximum 1000.", + "format": "int32", + "location": "query", + "minimum": "0", + "type": "integer" + }, + "pageToken": { + "description": "A previously-returned page token representing part of the larger set of results to view.", + "location": "query", + "type": "string" + } + }, + "path": "b/{bucket}/anywhereCache", + "response": { + "$ref": "AnywhereCaches" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/cloud-platform.read-only", + "https://www.googleapis.com/auth/devstorage.full_control", + "https://www.googleapis.com/auth/devstorage.read_only", + "https://www.googleapis.com/auth/devstorage.read_write" + ] + }, + "pause": { + "description": "Pauses an Anywhere Cache instance.", + "httpMethod": "POST", + "id": "storage.anywhereCaches.pause", + "parameterOrder": [ + "bucket", + "anywhereCacheId" + ], + "parameters": { + "anywhereCacheId": { + "description": "The ID of requested Anywhere Cache instance.", + "location": "path", + "required": true, + "type": "string" + }, + "bucket": { + "description": "Name of the partent bucket", + "location": "path", + "required": true, + "type": "string" + } + }, + "path": "b/{bucket}/anywhereCaches/{anywhereCacheId}/pause", + "response": { + "$ref": "AnywhereCache" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/devstorage.full_control", + "https://www.googleapis.com/auth/devstorage.read_write" + ] + }, + "resume": { + "description": "Resumes a paused or disabled Anywhere Cache instance.", + "httpMethod": "POST", + "id": "storage.anywhereCaches.resume", + "parameterOrder": [ + "bucket", + "anywhereCacheId" + ], + "parameters": { + "anywhereCacheId": { + "description": "The ID of requested Anywhere Cache instance.", + "location": "path", + "required": true, + "type": "string" + }, + "bucket": { + "description": "Name of the partent bucket", + "location": "path", + "required": true, + "type": "string" + } + }, + "path": "b/{bucket}/anywhereCaches/{anywhereCacheId}/resume", + "response": { + "$ref": "AnywhereCache" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/devstorage.full_control", + "https://www.googleapis.com/auth/devstorage.read_write" + ] + }, + "update": { + "description": "Updates the config(ttl and admissionPolicy) of an Anywhere Cache instance.", + "httpMethod": "PATCH", + "id": "storage.anywhereCaches.update", + "parameterOrder": [ + "bucket", + "anywhereCacheId" + ], + "parameters": { + "anywhereCacheId": { + "description": "The ID of requested Anywhere Cache instance.", + "location": "path", + "required": true, + "type": "string" + }, + "bucket": { + "description": "Name of the partent bucket", + "location": "path", + "required": true, + "type": "string" + } + }, + "path": "b/{bucket}/anywhereCaches/{anywhereCacheId}", + "request": { + "$ref": "AnywhereCache" + }, + "response": { + "$ref": "GoogleLongrunningOperation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/devstorage.full_control", + "https://www.googleapis.com/auth/devstorage.read_write" + ] + } + } + }, "bucketAccessControls": { "methods": { "delete": { @@ -3563,9 +3799,87 @@ } } }, - "revision": "20231012", + "revision": "20231028", "rootUrl": "https://storage.googleapis.com/", "schemas": { + "AnywhereCache": { + "description": "An Anywhere Cache instance.", + "id": "AnywhereCache", + "properties": { + "admissionPolicy": { + "description": "The cache-level entry admission policy.", + "type": "string" + }, + "anywhereCacheId": { + "description": "The ID of the Anywhere cache instance.", + "type": "string" + }, + "bucket": { + "description": "The name of the bucket containing this cache instance.", + "type": "string" + }, + "createTime": { + "description": "The creation time of the cache instance in RFC 3339 format.", + "format": "date-time", + "type": "string" + }, + "id": { + "description": "The ID of the resource, including the project number, bucket name and anywhere cache ID.", + "type": "string" + }, + "kind": { + "default": "storage#anywhereCache", + "description": "The kind of item this is. For Anywhere Cache, this is always storage#anywhereCache.", + "type": "string" + }, + "pendingUpdate": { + "description": "True if the cache instance has an active Update long-running operation.", + "type": "boolean" + }, + "selfLink": { + "description": "The link to this cache instance.", + "type": "string" + }, + "state": { + "description": "The current state of the cache instance.", + "type": "string" + }, + "ttl": { + "description": "The TTL of all cache entries in whole seconds. e.g., \"7200s\". ", + "format": "google-duration", + "type": "string" + }, + "updateTime": { + "description": "The modification time of the cache instance metadata in RFC 3339 format.", + "format": "date-time", + "type": "string" + } + }, + "type": "object" + }, + "AnywhereCaches": { + "description": "A list of Anywhere Caches.", + "id": "AnywhereCaches", + "properties": { + "items": { + "description": "The list of items.", + "items": { + "$ref": "AnywhereCache" + }, + "type": "array" + }, + "kind": { + "default": "storage#anywhereCaches", + "description": "The kind of item this is. For lists of Anywhere Caches, this is always storage#anywhereCaches.", + "type": "string" + }, + "nextPageToken": { + "description": "The continuation token, used to page through large result sets. Provide this value in a subsequent request to return the next page of results.", + "type": "string" + } + }, + "type": "object" + }, "Bucket": { "description": "A bucket.", "id": "Bucket", @@ -3951,7 +4265,7 @@ "type": "string" }, "retentionDurationSeconds": { - "description": "The period of time in seconds, that soft-deleted objects in the bucket will be retained and cannot be permanently deleted.", + "description": "The duration in seconds that soft-deleted objects in the bucket will be retained and cannot be permanently deleted.", "format": "int64", "type": "string" } diff --git a/storage/v1/storage-gen.go b/storage/v1/storage-gen.go index 2b2aa81ec0f..90320fcc0b5 100644 --- a/storage/v1/storage-gen.go +++ b/storage/v1/storage-gen.go @@ -155,6 +155,7 @@ func New(client *http.Client) (*Service, error) { return nil, errors.New("client is nil") } s := &Service{client: client, BasePath: basePath} + s.AnywhereCache = NewAnywhereCacheService(s) s.BucketAccessControls = NewBucketAccessControlsService(s) s.Buckets = NewBucketsService(s) s.Channels = NewChannelsService(s) @@ -173,6 +174,8 @@ type Service struct { BasePath string // API endpoint base URL UserAgent string // optional additional User-Agent fragment + AnywhereCache *AnywhereCacheService + BucketAccessControls *BucketAccessControlsService Buckets *BucketsService @@ -201,6 +204,15 @@ func (s *Service) userAgent() string { return googleapi.UserAgent + " " + s.UserAgent } +func NewAnywhereCacheService(s *Service) *AnywhereCacheService { + rs := &AnywhereCacheService{s: s} + return rs +} + +type AnywhereCacheService struct { + s *Service +} + func NewBucketAccessControlsService(s *Service) *BucketAccessControlsService { rs := &BucketAccessControlsService{s: s} return rs @@ -315,6 +327,115 @@ type ProjectsServiceAccountService struct { s *Service } +// AnywhereCache: An Anywhere Cache instance. +type AnywhereCache struct { + // AdmissionPolicy: The cache-level entry admission policy. + AdmissionPolicy string `json:"admissionPolicy,omitempty"` + + // AnywhereCacheId: The ID of the Anywhere cache instance. + AnywhereCacheId string `json:"anywhereCacheId,omitempty"` + + // Bucket: The name of the bucket containing this cache instance. + Bucket string `json:"bucket,omitempty"` + + // CreateTime: The creation time of the cache instance in RFC 3339 + // format. + CreateTime string `json:"createTime,omitempty"` + + // Id: The ID of the resource, including the project number, bucket name + // and anywhere cache ID. + Id string `json:"id,omitempty"` + + // Kind: The kind of item this is. For Anywhere Cache, this is always + // storage#anywhereCache. + Kind string `json:"kind,omitempty"` + + // PendingUpdate: True if the cache instance has an active Update + // long-running operation. + PendingUpdate bool `json:"pendingUpdate,omitempty"` + + // SelfLink: The link to this cache instance. + SelfLink string `json:"selfLink,omitempty"` + + // State: The current state of the cache instance. + State string `json:"state,omitempty"` + + // Ttl: The TTL of all cache entries in whole seconds. e.g., "7200s". + Ttl string `json:"ttl,omitempty"` + + // UpdateTime: The modification time of the cache instance metadata in + // RFC 3339 format. + UpdateTime string `json:"updateTime,omitempty"` + + // ServerResponse contains the HTTP response code and headers from the + // server. + googleapi.ServerResponse `json:"-"` + + // ForceSendFields is a list of field names (e.g. "AdmissionPolicy") to + // unconditionally include in API requests. By default, fields with + // empty or default values are omitted from API requests. However, any + // non-pointer, non-interface field appearing in ForceSendFields will be + // sent to the server regardless of whether the field is empty or not. + // This may be used to include empty fields in Patch requests. + ForceSendFields []string `json:"-"` + + // NullFields is a list of field names (e.g. "AdmissionPolicy") to + // include in API requests with the JSON null value. By default, fields + // with empty values are omitted from API requests. However, any field + // with an empty value appearing in NullFields will be sent to the + // server as null. It is an error if a field in this list has a + // non-empty value. This may be used to include null fields in Patch + // requests. + NullFields []string `json:"-"` +} + +func (s *AnywhereCache) MarshalJSON() ([]byte, error) { + type NoMethod AnywhereCache + raw := NoMethod(*s) + return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) +} + +// AnywhereCaches: A list of Anywhere Caches. +type AnywhereCaches struct { + // Items: The list of items. + Items []*AnywhereCache `json:"items,omitempty"` + + // Kind: The kind of item this is. For lists of Anywhere Caches, this is + // always storage#anywhereCaches. + Kind string `json:"kind,omitempty"` + + // NextPageToken: The continuation token, used to page through large + // result sets. Provide this value in a subsequent request to return the + // next page of results. + NextPageToken string `json:"nextPageToken,omitempty"` + + // ServerResponse contains the HTTP response code and headers from the + // server. + googleapi.ServerResponse `json:"-"` + + // ForceSendFields is a list of field names (e.g. "Items") to + // unconditionally include in API requests. By default, fields with + // empty or default values are omitted from API requests. However, any + // non-pointer, non-interface field appearing in ForceSendFields will be + // sent to the server regardless of whether the field is empty or not. + // This may be used to include empty fields in Patch requests. + ForceSendFields []string `json:"-"` + + // NullFields is a list of field names (e.g. "Items") to include in API + // requests with the JSON null value. By default, fields with empty + // values are omitted from API requests. However, any field with an + // empty value appearing in NullFields will be sent to the server as + // null. It is an error if a field in this list has a non-empty value. + // This may be used to include null fields in Patch requests. + NullFields []string `json:"-"` +} + +func (s *AnywhereCaches) MarshalJSON() ([]byte, error) { + type NoMethod AnywhereCaches + raw := NoMethod(*s) + return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) +} + // Bucket: A bucket. type Bucket struct { // Acl: Access controls on the bucket. @@ -1120,9 +1241,9 @@ type BucketSoftDeletePolicy struct { // This value is in RFC 3339 format. EffectiveTime string `json:"effectiveTime,omitempty"` - // RetentionDurationSeconds: The period of time in seconds, that - // soft-deleted objects in the bucket will be retained and cannot be - // permanently deleted. + // RetentionDurationSeconds: The duration in seconds that soft-deleted + // objects in the bucket will be retained and cannot be permanently + // deleted. RetentionDurationSeconds int64 `json:"retentionDurationSeconds,omitempty,string"` // ForceSendFields is a list of field names (e.g. "EffectiveTime") to @@ -2944,6 +3065,1087 @@ func (s *TestIamPermissionsResponse) MarshalJSON() ([]byte, error) { return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) } +// method id "storage.anywhereCaches.disable": + +type AnywhereCacheDisableCall struct { + s *Service + bucket string + anywhereCacheId string + urlParams_ gensupport.URLParams + ctx_ context.Context + header_ http.Header +} + +// Disable: Disables an Anywhere Cache instance. +// +// - anywhereCacheId: The ID of requested Anywhere Cache instance. +// - bucket: Name of the partent bucket. +func (r *AnywhereCacheService) Disable(bucket string, anywhereCacheId string) *AnywhereCacheDisableCall { + c := &AnywhereCacheDisableCall{s: r.s, urlParams_: make(gensupport.URLParams)} + c.bucket = bucket + c.anywhereCacheId = anywhereCacheId + return c +} + +// Fields allows partial responses to be retrieved. See +// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse +// for more information. +func (c *AnywhereCacheDisableCall) Fields(s ...googleapi.Field) *AnywhereCacheDisableCall { + c.urlParams_.Set("fields", googleapi.CombineFields(s)) + return c +} + +// Context sets the context to be used in this call's Do method. Any +// pending HTTP request will be aborted if the provided context is +// canceled. +func (c *AnywhereCacheDisableCall) Context(ctx context.Context) *AnywhereCacheDisableCall { + c.ctx_ = ctx + return c +} + +// Header returns an http.Header that can be modified by the caller to +// add HTTP headers to the request. +func (c *AnywhereCacheDisableCall) Header() http.Header { + if c.header_ == nil { + c.header_ = make(http.Header) + } + return c.header_ +} + +func (c *AnywhereCacheDisableCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := make(http.Header) + reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/"+internal.Version) + for k, v := range c.header_ { + reqHeaders[k] = v + } + reqHeaders.Set("User-Agent", c.s.userAgent()) + var body io.Reader = nil + c.urlParams_.Set("alt", alt) + c.urlParams_.Set("prettyPrint", "false") + urls := googleapi.ResolveRelative(c.s.BasePath, "b/{bucket}/anywhereCaches/{anywhereCacheId}/disable") + urls += "?" + c.urlParams_.Encode() + req, err := http.NewRequest("POST", urls, body) + if err != nil { + return nil, err + } + req.Header = reqHeaders + googleapi.Expand(req.URL, map[string]string{ + "bucket": c.bucket, + "anywhereCacheId": c.anywhereCacheId, + }) + return gensupport.SendRequest(c.ctx_, c.s.client, req) +} + +// Do executes the "storage.anywhereCaches.disable" call. +// Exactly one of *AnywhereCache or error will be non-nil. Any non-2xx +// status code is an error. Response headers are in either +// *AnywhereCache.ServerResponse.Header or (if a response was returned +// at all) in error.(*googleapi.Error).Header. Use +// googleapi.IsNotModified to check whether the returned error was +// because http.StatusNotModified was returned. +func (c *AnywhereCacheDisableCall) Do(opts ...googleapi.CallOption) (*AnywhereCache, error) { + gensupport.SetOptions(c.urlParams_, opts...) + res, err := c.doRequest("json") + if res != nil && res.StatusCode == http.StatusNotModified { + if res.Body != nil { + res.Body.Close() + } + return nil, gensupport.WrapError(&googleapi.Error{ + Code: res.StatusCode, + Header: res.Header, + }) + } + if err != nil { + return nil, err + } + defer googleapi.CloseBody(res) + if err := googleapi.CheckResponse(res); err != nil { + return nil, gensupport.WrapError(err) + } + ret := &AnywhereCache{ + ServerResponse: googleapi.ServerResponse{ + Header: res.Header, + HTTPStatusCode: res.StatusCode, + }, + } + target := &ret + if err := gensupport.DecodeResponse(target, res); err != nil { + return nil, err + } + return ret, nil + // { + // "description": "Disables an Anywhere Cache instance.", + // "httpMethod": "POST", + // "id": "storage.anywhereCaches.disable", + // "parameterOrder": [ + // "bucket", + // "anywhereCacheId" + // ], + // "parameters": { + // "anywhereCacheId": { + // "description": "The ID of requested Anywhere Cache instance.", + // "location": "path", + // "required": true, + // "type": "string" + // }, + // "bucket": { + // "description": "Name of the partent bucket", + // "location": "path", + // "required": true, + // "type": "string" + // } + // }, + // "path": "b/{bucket}/anywhereCaches/{anywhereCacheId}/disable", + // "response": { + // "$ref": "AnywhereCache" + // }, + // "scopes": [ + // "https://www.googleapis.com/auth/cloud-platform", + // "https://www.googleapis.com/auth/devstorage.full_control", + // "https://www.googleapis.com/auth/devstorage.read_write" + // ] + // } + +} + +// method id "storage.anywhereCaches.get": + +type AnywhereCacheGetCall struct { + s *Service + bucket string + anywhereCacheId string + urlParams_ gensupport.URLParams + ifNoneMatch_ string + ctx_ context.Context + header_ http.Header +} + +// Get: Returns the metadata of an Anywhere Cache instance. +// +// - anywhereCacheId: The ID of requested Anywhere Cache instance. +// - bucket: Name of the partent bucket. +func (r *AnywhereCacheService) Get(bucket string, anywhereCacheId string) *AnywhereCacheGetCall { + c := &AnywhereCacheGetCall{s: r.s, urlParams_: make(gensupport.URLParams)} + c.bucket = bucket + c.anywhereCacheId = anywhereCacheId + return c +} + +// Fields allows partial responses to be retrieved. See +// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse +// for more information. +func (c *AnywhereCacheGetCall) Fields(s ...googleapi.Field) *AnywhereCacheGetCall { + c.urlParams_.Set("fields", googleapi.CombineFields(s)) + return c +} + +// IfNoneMatch sets the optional parameter which makes the operation +// fail if the object's ETag matches the given value. This is useful for +// getting updates only after the object has changed since the last +// request. Use googleapi.IsNotModified to check whether the response +// error from Do is the result of In-None-Match. +func (c *AnywhereCacheGetCall) IfNoneMatch(entityTag string) *AnywhereCacheGetCall { + c.ifNoneMatch_ = entityTag + return c +} + +// Context sets the context to be used in this call's Do method. Any +// pending HTTP request will be aborted if the provided context is +// canceled. +func (c *AnywhereCacheGetCall) Context(ctx context.Context) *AnywhereCacheGetCall { + c.ctx_ = ctx + return c +} + +// Header returns an http.Header that can be modified by the caller to +// add HTTP headers to the request. +func (c *AnywhereCacheGetCall) Header() http.Header { + if c.header_ == nil { + c.header_ = make(http.Header) + } + return c.header_ +} + +func (c *AnywhereCacheGetCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := make(http.Header) + reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/"+internal.Version) + for k, v := range c.header_ { + reqHeaders[k] = v + } + reqHeaders.Set("User-Agent", c.s.userAgent()) + if c.ifNoneMatch_ != "" { + reqHeaders.Set("If-None-Match", c.ifNoneMatch_) + } + var body io.Reader = nil + c.urlParams_.Set("alt", alt) + c.urlParams_.Set("prettyPrint", "false") + urls := googleapi.ResolveRelative(c.s.BasePath, "b/{bucket}/anywhereCaches/{anywhereCacheId}") + urls += "?" + c.urlParams_.Encode() + req, err := http.NewRequest("GET", urls, body) + if err != nil { + return nil, err + } + req.Header = reqHeaders + googleapi.Expand(req.URL, map[string]string{ + "bucket": c.bucket, + "anywhereCacheId": c.anywhereCacheId, + }) + return gensupport.SendRequest(c.ctx_, c.s.client, req) +} + +// Do executes the "storage.anywhereCaches.get" call. +// Exactly one of *AnywhereCache or error will be non-nil. Any non-2xx +// status code is an error. Response headers are in either +// *AnywhereCache.ServerResponse.Header or (if a response was returned +// at all) in error.(*googleapi.Error).Header. Use +// googleapi.IsNotModified to check whether the returned error was +// because http.StatusNotModified was returned. +func (c *AnywhereCacheGetCall) Do(opts ...googleapi.CallOption) (*AnywhereCache, error) { + gensupport.SetOptions(c.urlParams_, opts...) + res, err := c.doRequest("json") + if res != nil && res.StatusCode == http.StatusNotModified { + if res.Body != nil { + res.Body.Close() + } + return nil, gensupport.WrapError(&googleapi.Error{ + Code: res.StatusCode, + Header: res.Header, + }) + } + if err != nil { + return nil, err + } + defer googleapi.CloseBody(res) + if err := googleapi.CheckResponse(res); err != nil { + return nil, gensupport.WrapError(err) + } + ret := &AnywhereCache{ + ServerResponse: googleapi.ServerResponse{ + Header: res.Header, + HTTPStatusCode: res.StatusCode, + }, + } + target := &ret + if err := gensupport.DecodeResponse(target, res); err != nil { + return nil, err + } + return ret, nil + // { + // "description": "Returns the metadata of an Anywhere Cache instance.", + // "httpMethod": "GET", + // "id": "storage.anywhereCaches.get", + // "parameterOrder": [ + // "bucket", + // "anywhereCacheId" + // ], + // "parameters": { + // "anywhereCacheId": { + // "description": "The ID of requested Anywhere Cache instance.", + // "location": "path", + // "required": true, + // "type": "string" + // }, + // "bucket": { + // "description": "Name of the partent bucket", + // "location": "path", + // "required": true, + // "type": "string" + // } + // }, + // "path": "b/{bucket}/anywhereCaches/{anywhereCacheId}", + // "response": { + // "$ref": "AnywhereCache" + // }, + // "scopes": [ + // "https://www.googleapis.com/auth/cloud-platform", + // "https://www.googleapis.com/auth/cloud-platform.read-only", + // "https://www.googleapis.com/auth/devstorage.full_control", + // "https://www.googleapis.com/auth/devstorage.read_only", + // "https://www.googleapis.com/auth/devstorage.read_write" + // ] + // } + +} + +// method id "storage.anywhereCaches.insert": + +type AnywhereCacheInsertCall struct { + s *Service + bucket string + anywherecache *AnywhereCache + urlParams_ gensupport.URLParams + ctx_ context.Context + header_ http.Header +} + +// Insert: Creates an Anywhere Cache instance. +// +// - bucket: Name of the partent bucket. +func (r *AnywhereCacheService) Insert(bucket string, anywherecache *AnywhereCache) *AnywhereCacheInsertCall { + c := &AnywhereCacheInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)} + c.bucket = bucket + c.anywherecache = anywherecache + return c +} + +// Fields allows partial responses to be retrieved. See +// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse +// for more information. +func (c *AnywhereCacheInsertCall) Fields(s ...googleapi.Field) *AnywhereCacheInsertCall { + c.urlParams_.Set("fields", googleapi.CombineFields(s)) + return c +} + +// Context sets the context to be used in this call's Do method. Any +// pending HTTP request will be aborted if the provided context is +// canceled. +func (c *AnywhereCacheInsertCall) Context(ctx context.Context) *AnywhereCacheInsertCall { + c.ctx_ = ctx + return c +} + +// Header returns an http.Header that can be modified by the caller to +// add HTTP headers to the request. +func (c *AnywhereCacheInsertCall) Header() http.Header { + if c.header_ == nil { + c.header_ = make(http.Header) + } + return c.header_ +} + +func (c *AnywhereCacheInsertCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := make(http.Header) + reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/"+internal.Version) + for k, v := range c.header_ { + reqHeaders[k] = v + } + reqHeaders.Set("User-Agent", c.s.userAgent()) + var body io.Reader = nil + body, err := googleapi.WithoutDataWrapper.JSONReader(c.anywherecache) + if err != nil { + return nil, err + } + reqHeaders.Set("Content-Type", "application/json") + c.urlParams_.Set("alt", alt) + c.urlParams_.Set("prettyPrint", "false") + urls := googleapi.ResolveRelative(c.s.BasePath, "b/{bucket}/anywhereCaches") + urls += "?" + c.urlParams_.Encode() + req, err := http.NewRequest("POST", urls, body) + if err != nil { + return nil, err + } + req.Header = reqHeaders + googleapi.Expand(req.URL, map[string]string{ + "bucket": c.bucket, + }) + return gensupport.SendRequest(c.ctx_, c.s.client, req) +} + +// Do executes the "storage.anywhereCaches.insert" call. +// Exactly one of *GoogleLongrunningOperation or error will be non-nil. +// Any non-2xx status code is an error. Response headers are in either +// *GoogleLongrunningOperation.ServerResponse.Header or (if a response +// was returned at all) in error.(*googleapi.Error).Header. Use +// googleapi.IsNotModified to check whether the returned error was +// because http.StatusNotModified was returned. +func (c *AnywhereCacheInsertCall) Do(opts ...googleapi.CallOption) (*GoogleLongrunningOperation, error) { + gensupport.SetOptions(c.urlParams_, opts...) + res, err := c.doRequest("json") + if res != nil && res.StatusCode == http.StatusNotModified { + if res.Body != nil { + res.Body.Close() + } + return nil, gensupport.WrapError(&googleapi.Error{ + Code: res.StatusCode, + Header: res.Header, + }) + } + if err != nil { + return nil, err + } + defer googleapi.CloseBody(res) + if err := googleapi.CheckResponse(res); err != nil { + return nil, gensupport.WrapError(err) + } + ret := &GoogleLongrunningOperation{ + ServerResponse: googleapi.ServerResponse{ + Header: res.Header, + HTTPStatusCode: res.StatusCode, + }, + } + target := &ret + if err := gensupport.DecodeResponse(target, res); err != nil { + return nil, err + } + return ret, nil + // { + // "description": "Creates an Anywhere Cache instance.", + // "httpMethod": "POST", + // "id": "storage.anywhereCaches.insert", + // "parameterOrder": [ + // "bucket" + // ], + // "parameters": { + // "bucket": { + // "description": "Name of the partent bucket", + // "location": "path", + // "required": true, + // "type": "string" + // } + // }, + // "path": "b/{bucket}/anywhereCaches", + // "request": { + // "$ref": "AnywhereCache" + // }, + // "response": { + // "$ref": "GoogleLongrunningOperation" + // }, + // "scopes": [ + // "https://www.googleapis.com/auth/cloud-platform", + // "https://www.googleapis.com/auth/devstorage.full_control", + // "https://www.googleapis.com/auth/devstorage.read_write" + // ] + // } + +} + +// method id "storage.anywhereCaches.list": + +type AnywhereCacheListCall struct { + s *Service + bucket string + urlParams_ gensupport.URLParams + ifNoneMatch_ string + ctx_ context.Context + header_ http.Header +} + +// List: Returns a list of Anywhere Cache instances of the bucket +// matching the criteria. +// +// - bucket: Name of the partent bucket. +func (r *AnywhereCacheService) List(bucket string) *AnywhereCacheListCall { + c := &AnywhereCacheListCall{s: r.s, urlParams_: make(gensupport.URLParams)} + c.bucket = bucket + return c +} + +// PageSize sets the optional parameter "pageSize": Maximum number of +// items return in a single page of responses. Maximum 1000. +func (c *AnywhereCacheListCall) PageSize(pageSize int64) *AnywhereCacheListCall { + c.urlParams_.Set("pageSize", fmt.Sprint(pageSize)) + return c +} + +// PageToken sets the optional parameter "pageToken": A +// previously-returned page token representing part of the larger set of +// results to view. +func (c *AnywhereCacheListCall) PageToken(pageToken string) *AnywhereCacheListCall { + c.urlParams_.Set("pageToken", pageToken) + return c +} + +// Fields allows partial responses to be retrieved. See +// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse +// for more information. +func (c *AnywhereCacheListCall) Fields(s ...googleapi.Field) *AnywhereCacheListCall { + c.urlParams_.Set("fields", googleapi.CombineFields(s)) + return c +} + +// IfNoneMatch sets the optional parameter which makes the operation +// fail if the object's ETag matches the given value. This is useful for +// getting updates only after the object has changed since the last +// request. Use googleapi.IsNotModified to check whether the response +// error from Do is the result of In-None-Match. +func (c *AnywhereCacheListCall) IfNoneMatch(entityTag string) *AnywhereCacheListCall { + c.ifNoneMatch_ = entityTag + return c +} + +// Context sets the context to be used in this call's Do method. Any +// pending HTTP request will be aborted if the provided context is +// canceled. +func (c *AnywhereCacheListCall) Context(ctx context.Context) *AnywhereCacheListCall { + c.ctx_ = ctx + return c +} + +// Header returns an http.Header that can be modified by the caller to +// add HTTP headers to the request. +func (c *AnywhereCacheListCall) Header() http.Header { + if c.header_ == nil { + c.header_ = make(http.Header) + } + return c.header_ +} + +func (c *AnywhereCacheListCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := make(http.Header) + reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/"+internal.Version) + for k, v := range c.header_ { + reqHeaders[k] = v + } + reqHeaders.Set("User-Agent", c.s.userAgent()) + if c.ifNoneMatch_ != "" { + reqHeaders.Set("If-None-Match", c.ifNoneMatch_) + } + var body io.Reader = nil + c.urlParams_.Set("alt", alt) + c.urlParams_.Set("prettyPrint", "false") + urls := googleapi.ResolveRelative(c.s.BasePath, "b/{bucket}/anywhereCache") + urls += "?" + c.urlParams_.Encode() + req, err := http.NewRequest("GET", urls, body) + if err != nil { + return nil, err + } + req.Header = reqHeaders + googleapi.Expand(req.URL, map[string]string{ + "bucket": c.bucket, + }) + return gensupport.SendRequest(c.ctx_, c.s.client, req) +} + +// Do executes the "storage.anywhereCaches.list" call. +// Exactly one of *AnywhereCaches or error will be non-nil. Any non-2xx +// status code is an error. Response headers are in either +// *AnywhereCaches.ServerResponse.Header or (if a response was returned +// at all) in error.(*googleapi.Error).Header. Use +// googleapi.IsNotModified to check whether the returned error was +// because http.StatusNotModified was returned. +func (c *AnywhereCacheListCall) Do(opts ...googleapi.CallOption) (*AnywhereCaches, error) { + gensupport.SetOptions(c.urlParams_, opts...) + res, err := c.doRequest("json") + if res != nil && res.StatusCode == http.StatusNotModified { + if res.Body != nil { + res.Body.Close() + } + return nil, gensupport.WrapError(&googleapi.Error{ + Code: res.StatusCode, + Header: res.Header, + }) + } + if err != nil { + return nil, err + } + defer googleapi.CloseBody(res) + if err := googleapi.CheckResponse(res); err != nil { + return nil, gensupport.WrapError(err) + } + ret := &AnywhereCaches{ + ServerResponse: googleapi.ServerResponse{ + Header: res.Header, + HTTPStatusCode: res.StatusCode, + }, + } + target := &ret + if err := gensupport.DecodeResponse(target, res); err != nil { + return nil, err + } + return ret, nil + // { + // "description": "Returns a list of Anywhere Cache instances of the bucket matching the criteria.", + // "httpMethod": "GET", + // "id": "storage.anywhereCaches.list", + // "parameterOrder": [ + // "bucket" + // ], + // "parameters": { + // "bucket": { + // "description": "Name of the partent bucket", + // "location": "path", + // "required": true, + // "type": "string" + // }, + // "pageSize": { + // "description": "Maximum number of items return in a single page of responses. Maximum 1000.", + // "format": "int32", + // "location": "query", + // "minimum": "0", + // "type": "integer" + // }, + // "pageToken": { + // "description": "A previously-returned page token representing part of the larger set of results to view.", + // "location": "query", + // "type": "string" + // } + // }, + // "path": "b/{bucket}/anywhereCache", + // "response": { + // "$ref": "AnywhereCaches" + // }, + // "scopes": [ + // "https://www.googleapis.com/auth/cloud-platform", + // "https://www.googleapis.com/auth/cloud-platform.read-only", + // "https://www.googleapis.com/auth/devstorage.full_control", + // "https://www.googleapis.com/auth/devstorage.read_only", + // "https://www.googleapis.com/auth/devstorage.read_write" + // ] + // } + +} + +// Pages invokes f for each page of results. +// A non-nil error returned from f will halt the iteration. +// The provided context supersedes any context provided to the Context method. +func (c *AnywhereCacheListCall) Pages(ctx context.Context, f func(*AnywhereCaches) error) error { + c.ctx_ = ctx + defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point + for { + x, err := c.Do() + if err != nil { + return err + } + if err := f(x); err != nil { + return err + } + if x.NextPageToken == "" { + return nil + } + c.PageToken(x.NextPageToken) + } +} + +// method id "storage.anywhereCaches.pause": + +type AnywhereCachePauseCall struct { + s *Service + bucket string + anywhereCacheId string + urlParams_ gensupport.URLParams + ctx_ context.Context + header_ http.Header +} + +// Pause: Pauses an Anywhere Cache instance. +// +// - anywhereCacheId: The ID of requested Anywhere Cache instance. +// - bucket: Name of the partent bucket. +func (r *AnywhereCacheService) Pause(bucket string, anywhereCacheId string) *AnywhereCachePauseCall { + c := &AnywhereCachePauseCall{s: r.s, urlParams_: make(gensupport.URLParams)} + c.bucket = bucket + c.anywhereCacheId = anywhereCacheId + return c +} + +// Fields allows partial responses to be retrieved. See +// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse +// for more information. +func (c *AnywhereCachePauseCall) Fields(s ...googleapi.Field) *AnywhereCachePauseCall { + c.urlParams_.Set("fields", googleapi.CombineFields(s)) + return c +} + +// Context sets the context to be used in this call's Do method. Any +// pending HTTP request will be aborted if the provided context is +// canceled. +func (c *AnywhereCachePauseCall) Context(ctx context.Context) *AnywhereCachePauseCall { + c.ctx_ = ctx + return c +} + +// Header returns an http.Header that can be modified by the caller to +// add HTTP headers to the request. +func (c *AnywhereCachePauseCall) Header() http.Header { + if c.header_ == nil { + c.header_ = make(http.Header) + } + return c.header_ +} + +func (c *AnywhereCachePauseCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := make(http.Header) + reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/"+internal.Version) + for k, v := range c.header_ { + reqHeaders[k] = v + } + reqHeaders.Set("User-Agent", c.s.userAgent()) + var body io.Reader = nil + c.urlParams_.Set("alt", alt) + c.urlParams_.Set("prettyPrint", "false") + urls := googleapi.ResolveRelative(c.s.BasePath, "b/{bucket}/anywhereCaches/{anywhereCacheId}/pause") + urls += "?" + c.urlParams_.Encode() + req, err := http.NewRequest("POST", urls, body) + if err != nil { + return nil, err + } + req.Header = reqHeaders + googleapi.Expand(req.URL, map[string]string{ + "bucket": c.bucket, + "anywhereCacheId": c.anywhereCacheId, + }) + return gensupport.SendRequest(c.ctx_, c.s.client, req) +} + +// Do executes the "storage.anywhereCaches.pause" call. +// Exactly one of *AnywhereCache or error will be non-nil. Any non-2xx +// status code is an error. Response headers are in either +// *AnywhereCache.ServerResponse.Header or (if a response was returned +// at all) in error.(*googleapi.Error).Header. Use +// googleapi.IsNotModified to check whether the returned error was +// because http.StatusNotModified was returned. +func (c *AnywhereCachePauseCall) Do(opts ...googleapi.CallOption) (*AnywhereCache, error) { + gensupport.SetOptions(c.urlParams_, opts...) + res, err := c.doRequest("json") + if res != nil && res.StatusCode == http.StatusNotModified { + if res.Body != nil { + res.Body.Close() + } + return nil, gensupport.WrapError(&googleapi.Error{ + Code: res.StatusCode, + Header: res.Header, + }) + } + if err != nil { + return nil, err + } + defer googleapi.CloseBody(res) + if err := googleapi.CheckResponse(res); err != nil { + return nil, gensupport.WrapError(err) + } + ret := &AnywhereCache{ + ServerResponse: googleapi.ServerResponse{ + Header: res.Header, + HTTPStatusCode: res.StatusCode, + }, + } + target := &ret + if err := gensupport.DecodeResponse(target, res); err != nil { + return nil, err + } + return ret, nil + // { + // "description": "Pauses an Anywhere Cache instance.", + // "httpMethod": "POST", + // "id": "storage.anywhereCaches.pause", + // "parameterOrder": [ + // "bucket", + // "anywhereCacheId" + // ], + // "parameters": { + // "anywhereCacheId": { + // "description": "The ID of requested Anywhere Cache instance.", + // "location": "path", + // "required": true, + // "type": "string" + // }, + // "bucket": { + // "description": "Name of the partent bucket", + // "location": "path", + // "required": true, + // "type": "string" + // } + // }, + // "path": "b/{bucket}/anywhereCaches/{anywhereCacheId}/pause", + // "response": { + // "$ref": "AnywhereCache" + // }, + // "scopes": [ + // "https://www.googleapis.com/auth/cloud-platform", + // "https://www.googleapis.com/auth/devstorage.full_control", + // "https://www.googleapis.com/auth/devstorage.read_write" + // ] + // } + +} + +// method id "storage.anywhereCaches.resume": + +type AnywhereCacheResumeCall struct { + s *Service + bucket string + anywhereCacheId string + urlParams_ gensupport.URLParams + ctx_ context.Context + header_ http.Header +} + +// Resume: Resumes a paused or disabled Anywhere Cache instance. +// +// - anywhereCacheId: The ID of requested Anywhere Cache instance. +// - bucket: Name of the partent bucket. +func (r *AnywhereCacheService) Resume(bucket string, anywhereCacheId string) *AnywhereCacheResumeCall { + c := &AnywhereCacheResumeCall{s: r.s, urlParams_: make(gensupport.URLParams)} + c.bucket = bucket + c.anywhereCacheId = anywhereCacheId + return c +} + +// Fields allows partial responses to be retrieved. See +// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse +// for more information. +func (c *AnywhereCacheResumeCall) Fields(s ...googleapi.Field) *AnywhereCacheResumeCall { + c.urlParams_.Set("fields", googleapi.CombineFields(s)) + return c +} + +// Context sets the context to be used in this call's Do method. Any +// pending HTTP request will be aborted if the provided context is +// canceled. +func (c *AnywhereCacheResumeCall) Context(ctx context.Context) *AnywhereCacheResumeCall { + c.ctx_ = ctx + return c +} + +// Header returns an http.Header that can be modified by the caller to +// add HTTP headers to the request. +func (c *AnywhereCacheResumeCall) Header() http.Header { + if c.header_ == nil { + c.header_ = make(http.Header) + } + return c.header_ +} + +func (c *AnywhereCacheResumeCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := make(http.Header) + reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/"+internal.Version) + for k, v := range c.header_ { + reqHeaders[k] = v + } + reqHeaders.Set("User-Agent", c.s.userAgent()) + var body io.Reader = nil + c.urlParams_.Set("alt", alt) + c.urlParams_.Set("prettyPrint", "false") + urls := googleapi.ResolveRelative(c.s.BasePath, "b/{bucket}/anywhereCaches/{anywhereCacheId}/resume") + urls += "?" + c.urlParams_.Encode() + req, err := http.NewRequest("POST", urls, body) + if err != nil { + return nil, err + } + req.Header = reqHeaders + googleapi.Expand(req.URL, map[string]string{ + "bucket": c.bucket, + "anywhereCacheId": c.anywhereCacheId, + }) + return gensupport.SendRequest(c.ctx_, c.s.client, req) +} + +// Do executes the "storage.anywhereCaches.resume" call. +// Exactly one of *AnywhereCache or error will be non-nil. Any non-2xx +// status code is an error. Response headers are in either +// *AnywhereCache.ServerResponse.Header or (if a response was returned +// at all) in error.(*googleapi.Error).Header. Use +// googleapi.IsNotModified to check whether the returned error was +// because http.StatusNotModified was returned. +func (c *AnywhereCacheResumeCall) Do(opts ...googleapi.CallOption) (*AnywhereCache, error) { + gensupport.SetOptions(c.urlParams_, opts...) + res, err := c.doRequest("json") + if res != nil && res.StatusCode == http.StatusNotModified { + if res.Body != nil { + res.Body.Close() + } + return nil, gensupport.WrapError(&googleapi.Error{ + Code: res.StatusCode, + Header: res.Header, + }) + } + if err != nil { + return nil, err + } + defer googleapi.CloseBody(res) + if err := googleapi.CheckResponse(res); err != nil { + return nil, gensupport.WrapError(err) + } + ret := &AnywhereCache{ + ServerResponse: googleapi.ServerResponse{ + Header: res.Header, + HTTPStatusCode: res.StatusCode, + }, + } + target := &ret + if err := gensupport.DecodeResponse(target, res); err != nil { + return nil, err + } + return ret, nil + // { + // "description": "Resumes a paused or disabled Anywhere Cache instance.", + // "httpMethod": "POST", + // "id": "storage.anywhereCaches.resume", + // "parameterOrder": [ + // "bucket", + // "anywhereCacheId" + // ], + // "parameters": { + // "anywhereCacheId": { + // "description": "The ID of requested Anywhere Cache instance.", + // "location": "path", + // "required": true, + // "type": "string" + // }, + // "bucket": { + // "description": "Name of the partent bucket", + // "location": "path", + // "required": true, + // "type": "string" + // } + // }, + // "path": "b/{bucket}/anywhereCaches/{anywhereCacheId}/resume", + // "response": { + // "$ref": "AnywhereCache" + // }, + // "scopes": [ + // "https://www.googleapis.com/auth/cloud-platform", + // "https://www.googleapis.com/auth/devstorage.full_control", + // "https://www.googleapis.com/auth/devstorage.read_write" + // ] + // } + +} + +// method id "storage.anywhereCaches.update": + +type AnywhereCacheUpdateCall struct { + s *Service + bucket string + anywhereCacheId string + anywherecache *AnywhereCache + urlParams_ gensupport.URLParams + ctx_ context.Context + header_ http.Header +} + +// Update: Updates the config(ttl and admissionPolicy) of an Anywhere +// Cache instance. +// +// - anywhereCacheId: The ID of requested Anywhere Cache instance. +// - bucket: Name of the partent bucket. +func (r *AnywhereCacheService) Update(bucket string, anywhereCacheId string, anywherecache *AnywhereCache) *AnywhereCacheUpdateCall { + c := &AnywhereCacheUpdateCall{s: r.s, urlParams_: make(gensupport.URLParams)} + c.bucket = bucket + c.anywhereCacheId = anywhereCacheId + c.anywherecache = anywherecache + return c +} + +// Fields allows partial responses to be retrieved. See +// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse +// for more information. +func (c *AnywhereCacheUpdateCall) Fields(s ...googleapi.Field) *AnywhereCacheUpdateCall { + c.urlParams_.Set("fields", googleapi.CombineFields(s)) + return c +} + +// Context sets the context to be used in this call's Do method. Any +// pending HTTP request will be aborted if the provided context is +// canceled. +func (c *AnywhereCacheUpdateCall) Context(ctx context.Context) *AnywhereCacheUpdateCall { + c.ctx_ = ctx + return c +} + +// Header returns an http.Header that can be modified by the caller to +// add HTTP headers to the request. +func (c *AnywhereCacheUpdateCall) Header() http.Header { + if c.header_ == nil { + c.header_ = make(http.Header) + } + return c.header_ +} + +func (c *AnywhereCacheUpdateCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := make(http.Header) + reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/"+internal.Version) + for k, v := range c.header_ { + reqHeaders[k] = v + } + reqHeaders.Set("User-Agent", c.s.userAgent()) + var body io.Reader = nil + body, err := googleapi.WithoutDataWrapper.JSONReader(c.anywherecache) + if err != nil { + return nil, err + } + reqHeaders.Set("Content-Type", "application/json") + c.urlParams_.Set("alt", alt) + c.urlParams_.Set("prettyPrint", "false") + urls := googleapi.ResolveRelative(c.s.BasePath, "b/{bucket}/anywhereCaches/{anywhereCacheId}") + urls += "?" + c.urlParams_.Encode() + req, err := http.NewRequest("PATCH", urls, body) + if err != nil { + return nil, err + } + req.Header = reqHeaders + googleapi.Expand(req.URL, map[string]string{ + "bucket": c.bucket, + "anywhereCacheId": c.anywhereCacheId, + }) + return gensupport.SendRequest(c.ctx_, c.s.client, req) +} + +// Do executes the "storage.anywhereCaches.update" call. +// Exactly one of *GoogleLongrunningOperation or error will be non-nil. +// Any non-2xx status code is an error. Response headers are in either +// *GoogleLongrunningOperation.ServerResponse.Header or (if a response +// was returned at all) in error.(*googleapi.Error).Header. Use +// googleapi.IsNotModified to check whether the returned error was +// because http.StatusNotModified was returned. +func (c *AnywhereCacheUpdateCall) Do(opts ...googleapi.CallOption) (*GoogleLongrunningOperation, error) { + gensupport.SetOptions(c.urlParams_, opts...) + res, err := c.doRequest("json") + if res != nil && res.StatusCode == http.StatusNotModified { + if res.Body != nil { + res.Body.Close() + } + return nil, gensupport.WrapError(&googleapi.Error{ + Code: res.StatusCode, + Header: res.Header, + }) + } + if err != nil { + return nil, err + } + defer googleapi.CloseBody(res) + if err := googleapi.CheckResponse(res); err != nil { + return nil, gensupport.WrapError(err) + } + ret := &GoogleLongrunningOperation{ + ServerResponse: googleapi.ServerResponse{ + Header: res.Header, + HTTPStatusCode: res.StatusCode, + }, + } + target := &ret + if err := gensupport.DecodeResponse(target, res); err != nil { + return nil, err + } + return ret, nil + // { + // "description": "Updates the config(ttl and admissionPolicy) of an Anywhere Cache instance.", + // "httpMethod": "PATCH", + // "id": "storage.anywhereCaches.update", + // "parameterOrder": [ + // "bucket", + // "anywhereCacheId" + // ], + // "parameters": { + // "anywhereCacheId": { + // "description": "The ID of requested Anywhere Cache instance.", + // "location": "path", + // "required": true, + // "type": "string" + // }, + // "bucket": { + // "description": "Name of the partent bucket", + // "location": "path", + // "required": true, + // "type": "string" + // } + // }, + // "path": "b/{bucket}/anywhereCaches/{anywhereCacheId}", + // "request": { + // "$ref": "AnywhereCache" + // }, + // "response": { + // "$ref": "GoogleLongrunningOperation" + // }, + // "scopes": [ + // "https://www.googleapis.com/auth/cloud-platform", + // "https://www.googleapis.com/auth/devstorage.full_control", + // "https://www.googleapis.com/auth/devstorage.read_write" + // ] + // } + +} + // method id "storage.bucketAccessControls.delete": type BucketAccessControlsDeleteCall struct { diff --git a/testing/v1/testing-api.json b/testing/v1/testing-api.json index be61d679192..5ed705e5560 100644 --- a/testing/v1/testing-api.json +++ b/testing/v1/testing-api.json @@ -442,7 +442,7 @@ } } }, - "revision": "20231023", + "revision": "20231027", "rootUrl": "https://testing.googleapis.com/", "schemas": { "Account": { @@ -2564,6 +2564,13 @@ }, "type": "array" }, + "initialSetupApks": { + "description": "Optional. Initial setup APKs to install before the app under test is installed. Currently capped at 100.", + "items": { + "$ref": "Apk" + }, + "type": "array" + }, "networkProfile": { "description": "The network traffic profile used for running the test. Available network profiles can be queried by using the NETWORK_CONFIGURATION environment type when calling TestEnvironmentDiscoveryService.GetTestEnvironmentCatalog.", "type": "string" diff --git a/testing/v1/testing-gen.go b/testing/v1/testing-gen.go index f517c8c231c..4361fb66445 100644 --- a/testing/v1/testing-gen.go +++ b/testing/v1/testing-gen.go @@ -3496,6 +3496,10 @@ type TestSetup struct { // test. FilesToPush []*DeviceFile `json:"filesToPush,omitempty"` + // InitialSetupApks: Optional. Initial setup APKs to install before the + // app under test is installed. Currently capped at 100. + InitialSetupApks []*Apk `json:"initialSetupApks,omitempty"` + // NetworkProfile: The network traffic profile used for running the // test. Available network profiles can be queried by using the // NETWORK_CONFIGURATION environment type when calling diff --git a/trafficdirector/v3/trafficdirector-api.json b/trafficdirector/v3/trafficdirector-api.json new file mode 100644 index 00000000000..bb684b569fa --- /dev/null +++ b/trafficdirector/v3/trafficdirector-api.json @@ -0,0 +1,1289 @@ +{ + "auth": { + "oauth2": { + "scopes": { + "https://www.googleapis.com/auth/cloud-platform": { + "description": "See, edit, configure, and delete your Google Cloud data and see the email address for your Google Account." + } + } + } + }, + "basePath": "", + "baseUrl": "https://trafficdirector.googleapis.com/", + "batchPath": "batch", + "canonicalName": "Traffic Director Service", + "description": "", + "discoveryVersion": "v1", + "documentationLink": "https://cloud.google.com/traffic-director", + "fullyEncodeReservedExpansion": true, + "icons": { + "x16": "http://www.google.com/images/icons/product/search-16.gif", + "x32": "http://www.google.com/images/icons/product/search-32.gif" + }, + "id": "trafficdirector:v3", + "kind": "discovery#restDescription", + "mtlsRootUrl": "https://trafficdirector.mtls.googleapis.com/", + "name": "trafficdirector", + "ownerDomain": "google.com", + "ownerName": "Google", + "parameters": { + "$.xgafv": { + "description": "V1 error format.", + "enum": [ + "1", + "2" + ], + "enumDescriptions": [ + "v1 error format", + "v2 error format" + ], + "location": "query", + "type": "string" + }, + "access_token": { + "description": "OAuth access token.", + "location": "query", + "type": "string" + }, + "alt": { + "default": "json", + "description": "Data format for response.", + "enum": [ + "json", + "media", + "proto" + ], + "enumDescriptions": [ + "Responses with Content-Type of application/json", + "Media download with context-dependent Content-Type", + "Responses with Content-Type of application/x-protobuf" + ], + "location": "query", + "type": "string" + }, + "callback": { + "description": "JSONP", + "location": "query", + "type": "string" + }, + "fields": { + "description": "Selector specifying which fields to include in a partial response.", + "location": "query", + "type": "string" + }, + "key": { + "description": "API key. Your API key identifies your project and provides you with API access, quota, and reports. Required unless you provide an OAuth 2.0 token.", + "location": "query", + "type": "string" + }, + "oauth_token": { + "description": "OAuth 2.0 token for the current user.", + "location": "query", + "type": "string" + }, + "prettyPrint": { + "default": "true", + "description": "Returns response with indentations and line breaks.", + "location": "query", + "type": "boolean" + }, + "quotaUser": { + "description": "Available to use for quota purposes for server-side applications. Can be any arbitrary string assigned to a user, but should not exceed 40 characters.", + "location": "query", + "type": "string" + }, + "uploadType": { + "description": "Legacy upload protocol for media (e.g. \"media\", \"multipart\").", + "location": "query", + "type": "string" + }, + "upload_protocol": { + "description": "Upload protocol for media (e.g. \"raw\", \"multipart\").", + "location": "query", + "type": "string" + } + }, + "protocol": "rest", + "resources": { + "discovery": { + "methods": { + "client_status": { + "description": "", + "flatPath": "v3/discovery:client_status", + "httpMethod": "POST", + "id": "trafficdirector.discovery.client_status", + "parameterOrder": [], + "parameters": {}, + "path": "v3/discovery:client_status", + "request": { + "$ref": "ClientStatusRequest" + }, + "response": { + "$ref": "ClientStatusResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + } + } + } + }, + "revision": "20231018", + "rootUrl": "https://trafficdirector.googleapis.com/", + "schemas": { + "Address": { + "description": "Addresses specify either a logical or physical address and port, which are used to tell Envoy where to bind/listen, connect to upstream and find management servers.", + "id": "Address", + "properties": { + "envoyInternalAddress": { + "$ref": "EnvoyInternalAddress", + "description": "Specifies a user-space address handled by :ref:`internal listeners `." + }, + "pipe": { + "$ref": "Pipe" + }, + "socketAddress": { + "$ref": "SocketAddress" + } + }, + "type": "object" + }, + "BuildVersion": { + "description": "BuildVersion combines SemVer version of extension with free-form build information (i.e. 'alpha', 'private-build') as a set of strings.", + "id": "BuildVersion", + "properties": { + "metadata": { + "additionalProperties": { + "description": "Properties of the object.", + "type": "any" + }, + "description": "Free-form build information. Envoy defines several well known keys in the source/common/version/version.h file", + "type": "object" + }, + "version": { + "$ref": "SemanticVersion", + "description": "SemVer version of extension." + } + }, + "type": "object" + }, + "ClientConfig": { + "description": "All xds configs for a particular client.", + "id": "ClientConfig", + "properties": { + "genericXdsConfigs": { + "description": "Represents generic xDS config and the exact config structure depends on the type URL (like Cluster if it is CDS)", + "items": { + "$ref": "GenericXdsConfig" + }, + "type": "array" + }, + "node": { + "$ref": "Node", + "description": "Node for a particular client." + }, + "xdsConfig": { + "deprecated": true, + "description": "This field is deprecated in favor of generic_xds_configs which is much simpler and uniform in structure.", + "items": { + "$ref": "PerXdsConfig" + }, + "type": "array" + } + }, + "type": "object" + }, + "ClientStatusRequest": { + "description": "Request for client status of clients identified by a list of NodeMatchers.", + "id": "ClientStatusRequest", + "properties": { + "excludeResourceContents": { + "description": "If true, the server will not include the resource contents in the response (i.e., the generic_xds_configs.xds_config field will not be populated). [#not-implemented-hide:]", + "type": "boolean" + }, + "node": { + "$ref": "Node", + "description": "The node making the csds request." + }, + "nodeMatchers": { + "description": "Management server can use these match criteria to identify clients. The match follows OR semantics.", + "items": { + "$ref": "NodeMatcher" + }, + "type": "array" + } + }, + "type": "object" + }, + "ClientStatusResponse": { + "id": "ClientStatusResponse", + "properties": { + "config": { + "description": "Client configs for the clients specified in the ClientStatusRequest.", + "items": { + "$ref": "ClientConfig" + }, + "type": "array" + } + }, + "type": "object" + }, + "ClustersConfigDump": { + "description": "Envoy's cluster manager fills this message with all currently known clusters. Cluster configuration information can be used to recreate an Envoy configuration by populating all clusters as static clusters or by returning them in a CDS response.", + "id": "ClustersConfigDump", + "properties": { + "dynamicActiveClusters": { + "description": "The dynamically loaded active clusters. These are clusters that are available to service data plane traffic.", + "items": { + "$ref": "DynamicCluster" + }, + "type": "array" + }, + "dynamicWarmingClusters": { + "description": "The dynamically loaded warming clusters. These are clusters that are currently undergoing warming in preparation to service data plane traffic. Note that if attempting to recreate an Envoy configuration from a configuration dump, the warming clusters should generally be discarded.", + "items": { + "$ref": "DynamicCluster" + }, + "type": "array" + }, + "staticClusters": { + "description": "The statically loaded cluster configs.", + "items": { + "$ref": "StaticCluster" + }, + "type": "array" + }, + "versionInfo": { + "description": "This is the :ref:`version_info ` in the last processed CDS discovery response. If there are only static bootstrap clusters, this field will be \"\".", + "type": "string" + } + }, + "type": "object" + }, + "ContextParams": { + "description": "Additional parameters that can be used to select resource variants. These include any global context parameters, per-resource type client feature capabilities and per-resource type functional attributes. All per-resource type attributes will be `xds.resource.` prefixed and some of these are documented below: `xds.resource.listening_address`: The value is \"IP:port\" (e.g. \"10.1.1.3:8080\") which is the listening address of a Listener. Used in a Listener resource query.", + "id": "ContextParams", + "properties": { + "params": { + "additionalProperties": { + "type": "string" + }, + "type": "object" + } + }, + "type": "object" + }, + "DoubleMatcher": { + "description": "Specifies the way to match a double value.", + "id": "DoubleMatcher", + "properties": { + "exact": { + "description": "If specified, the input double value must be equal to the value specified here.", + "format": "double", + "type": "number" + }, + "range": { + "$ref": "DoubleRange", + "description": "If specified, the input double value must be in the range specified here. Note: The range is using half-open interval semantics [start, end)." + } + }, + "type": "object" + }, + "DoubleRange": { + "description": "Specifies the double start and end of the range using half-open interval semantics [start, end).", + "id": "DoubleRange", + "properties": { + "end": { + "description": "end of the range (exclusive)", + "format": "double", + "type": "number" + }, + "start": { + "description": "start of the range (inclusive)", + "format": "double", + "type": "number" + } + }, + "type": "object" + }, + "DynamicCluster": { + "description": "Describes a dynamically loaded cluster via the CDS API. [#next-free-field: 6]", + "id": "DynamicCluster", + "properties": { + "clientStatus": { + "description": "The client status of this resource. [#not-implemented-hide:]", + "enum": [ + "UNKNOWN", + "REQUESTED", + "DOES_NOT_EXIST", + "ACKED", + "NACKED" + ], + "enumDescriptions": [ + "Resource status is not available/unknown.", + "Client requested this resource but hasn't received any update from management server. The client will not fail requests, but will queue them until update arrives or the client times out waiting for the resource.", + "This resource has been requested by the client but has either not been delivered by the server or was previously delivered by the server and then subsequently removed from resources provided by the server. For more information, please refer to the :ref:`\"Knowing When a Requested Resource Does Not Exist\" ` section.", + "Client received this resource and replied with ACK.", + "Client received this resource and replied with NACK." + ], + "type": "string" + }, + "cluster": { + "additionalProperties": { + "description": "Properties of the object. Contains field @type with type URL.", + "type": "any" + }, + "description": "The cluster config.", + "type": "object" + }, + "errorState": { + "$ref": "UpdateFailureState", + "description": "Set if the last update failed, cleared after the next successful update. The ``error_state`` field contains the rejected version of this particular resource along with the reason and timestamp. For successfully updated or acknowledged resource, this field should be empty. [#not-implemented-hide:]" + }, + "lastUpdated": { + "description": "The timestamp when the Cluster was last updated.", + "format": "google-datetime", + "type": "string" + }, + "versionInfo": { + "description": "This is the per-resource version information. This version is currently taken from the :ref:`version_info ` field at the time that the cluster was loaded. In the future, discrete per-cluster versions may be supported by the API.", + "type": "string" + } + }, + "type": "object" + }, + "DynamicEndpointConfig": { + "description": "[#next-free-field: 6]", + "id": "DynamicEndpointConfig", + "properties": { + "clientStatus": { + "description": "The client status of this resource. [#not-implemented-hide:]", + "enum": [ + "UNKNOWN", + "REQUESTED", + "DOES_NOT_EXIST", + "ACKED", + "NACKED" + ], + "enumDescriptions": [ + "Resource status is not available/unknown.", + "Client requested this resource but hasn't received any update from management server. The client will not fail requests, but will queue them until update arrives or the client times out waiting for the resource.", + "This resource has been requested by the client but has either not been delivered by the server or was previously delivered by the server and then subsequently removed from resources provided by the server. For more information, please refer to the :ref:`\"Knowing When a Requested Resource Does Not Exist\" ` section.", + "Client received this resource and replied with ACK.", + "Client received this resource and replied with NACK." + ], + "type": "string" + }, + "endpointConfig": { + "additionalProperties": { + "description": "Properties of the object. Contains field @type with type URL.", + "type": "any" + }, + "description": "The endpoint config.", + "type": "object" + }, + "errorState": { + "$ref": "UpdateFailureState", + "description": "Set if the last update failed, cleared after the next successful update. The ``error_state`` field contains the rejected version of this particular resource along with the reason and timestamp. For successfully updated or acknowledged resource, this field should be empty. [#not-implemented-hide:]" + }, + "lastUpdated": { + "description": "[#not-implemented-hide:] The timestamp when the Endpoint was last updated.", + "format": "google-datetime", + "type": "string" + }, + "versionInfo": { + "description": "[#not-implemented-hide:] This is the per-resource version information. This version is currently taken from the :ref:`version_info ` field at the time that the endpoint configuration was loaded.", + "type": "string" + } + }, + "type": "object" + }, + "DynamicListener": { + "description": "Describes a dynamically loaded listener via the LDS API. [#next-free-field: 7]", + "id": "DynamicListener", + "properties": { + "activeState": { + "$ref": "DynamicListenerState", + "description": "The listener state for any active listener by this name. These are listeners that are available to service data plane traffic." + }, + "clientStatus": { + "description": "The client status of this resource. [#not-implemented-hide:]", + "enum": [ + "UNKNOWN", + "REQUESTED", + "DOES_NOT_EXIST", + "ACKED", + "NACKED" + ], + "enumDescriptions": [ + "Resource status is not available/unknown.", + "Client requested this resource but hasn't received any update from management server. The client will not fail requests, but will queue them until update arrives or the client times out waiting for the resource.", + "This resource has been requested by the client but has either not been delivered by the server or was previously delivered by the server and then subsequently removed from resources provided by the server. For more information, please refer to the :ref:`\"Knowing When a Requested Resource Does Not Exist\" ` section.", + "Client received this resource and replied with ACK.", + "Client received this resource and replied with NACK." + ], + "type": "string" + }, + "drainingState": { + "$ref": "DynamicListenerState", + "description": "The listener state for any draining listener by this name. These are listeners that are currently undergoing draining in preparation to stop servicing data plane traffic. Note that if attempting to recreate an Envoy configuration from a configuration dump, the draining listeners should generally be discarded." + }, + "errorState": { + "$ref": "UpdateFailureState", + "description": "Set if the last update failed, cleared after the next successful update. The ``error_state`` field contains the rejected version of this particular resource along with the reason and timestamp. For successfully updated or acknowledged resource, this field should be empty." + }, + "name": { + "description": "The name or unique id of this listener, pulled from the DynamicListenerState config.", + "type": "string" + }, + "warmingState": { + "$ref": "DynamicListenerState", + "description": "The listener state for any warming listener by this name. These are listeners that are currently undergoing warming in preparation to service data plane traffic. Note that if attempting to recreate an Envoy configuration from a configuration dump, the warming listeners should generally be discarded." + } + }, + "type": "object" + }, + "DynamicListenerState": { + "id": "DynamicListenerState", + "properties": { + "lastUpdated": { + "description": "The timestamp when the Listener was last successfully updated.", + "format": "google-datetime", + "type": "string" + }, + "listener": { + "additionalProperties": { + "description": "Properties of the object. Contains field @type with type URL.", + "type": "any" + }, + "description": "The listener config.", + "type": "object" + }, + "versionInfo": { + "description": "This is the per-resource version information. This version is currently taken from the :ref:`version_info ` field at the time that the listener was loaded. In the future, discrete per-listener versions may be supported by the API.", + "type": "string" + } + }, + "type": "object" + }, + "DynamicRouteConfig": { + "description": "[#next-free-field: 6]", + "id": "DynamicRouteConfig", + "properties": { + "clientStatus": { + "description": "The client status of this resource. [#not-implemented-hide:]", + "enum": [ + "UNKNOWN", + "REQUESTED", + "DOES_NOT_EXIST", + "ACKED", + "NACKED" + ], + "enumDescriptions": [ + "Resource status is not available/unknown.", + "Client requested this resource but hasn't received any update from management server. The client will not fail requests, but will queue them until update arrives or the client times out waiting for the resource.", + "This resource has been requested by the client but has either not been delivered by the server or was previously delivered by the server and then subsequently removed from resources provided by the server. For more information, please refer to the :ref:`\"Knowing When a Requested Resource Does Not Exist\" ` section.", + "Client received this resource and replied with ACK.", + "Client received this resource and replied with NACK." + ], + "type": "string" + }, + "errorState": { + "$ref": "UpdateFailureState", + "description": "Set if the last update failed, cleared after the next successful update. The ``error_state`` field contains the rejected version of this particular resource along with the reason and timestamp. For successfully updated or acknowledged resource, this field should be empty. [#not-implemented-hide:]" + }, + "lastUpdated": { + "description": "The timestamp when the Route was last updated.", + "format": "google-datetime", + "type": "string" + }, + "routeConfig": { + "additionalProperties": { + "description": "Properties of the object. Contains field @type with type URL.", + "type": "any" + }, + "description": "The route config.", + "type": "object" + }, + "versionInfo": { + "description": "This is the per-resource version information. This version is currently taken from the :ref:`version_info ` field at the time that the route configuration was loaded.", + "type": "string" + } + }, + "type": "object" + }, + "DynamicScopedRouteConfigs": { + "description": "[#next-free-field: 7]", + "id": "DynamicScopedRouteConfigs", + "properties": { + "clientStatus": { + "description": "The client status of this resource. [#not-implemented-hide:]", + "enum": [ + "UNKNOWN", + "REQUESTED", + "DOES_NOT_EXIST", + "ACKED", + "NACKED" + ], + "enumDescriptions": [ + "Resource status is not available/unknown.", + "Client requested this resource but hasn't received any update from management server. The client will not fail requests, but will queue them until update arrives or the client times out waiting for the resource.", + "This resource has been requested by the client but has either not been delivered by the server or was previously delivered by the server and then subsequently removed from resources provided by the server. For more information, please refer to the :ref:`\"Knowing When a Requested Resource Does Not Exist\" ` section.", + "Client received this resource and replied with ACK.", + "Client received this resource and replied with NACK." + ], + "type": "string" + }, + "errorState": { + "$ref": "UpdateFailureState", + "description": "Set if the last update failed, cleared after the next successful update. The ``error_state`` field contains the rejected version of this particular resource along with the reason and timestamp. For successfully updated or acknowledged resource, this field should be empty. [#not-implemented-hide:]" + }, + "lastUpdated": { + "description": "The timestamp when the scoped route config set was last updated.", + "format": "google-datetime", + "type": "string" + }, + "name": { + "description": "The name assigned to the scoped route configurations.", + "type": "string" + }, + "scopedRouteConfigs": { + "description": "The scoped route configurations.", + "items": { + "additionalProperties": { + "description": "Properties of the object. Contains field @type with type URL.", + "type": "any" + }, + "type": "object" + }, + "type": "array" + }, + "versionInfo": { + "description": "This is the per-resource version information. This version is currently taken from the :ref:`version_info ` field at the time that the scoped routes configuration was loaded.", + "type": "string" + } + }, + "type": "object" + }, + "EndpointsConfigDump": { + "description": "Envoy's admin fill this message with all currently known endpoints. Endpoint configuration information can be used to recreate an Envoy configuration by populating all endpoints as static endpoints or by returning them in an EDS response.", + "id": "EndpointsConfigDump", + "properties": { + "dynamicEndpointConfigs": { + "description": "The dynamically loaded endpoint configs.", + "items": { + "$ref": "DynamicEndpointConfig" + }, + "type": "array" + }, + "staticEndpointConfigs": { + "description": "The statically loaded endpoint configs.", + "items": { + "$ref": "StaticEndpointConfig" + }, + "type": "array" + } + }, + "type": "object" + }, + "EnvoyInternalAddress": { + "description": "The address represents an envoy internal listener. [#comment: ", + "id": "EnvoyInternalAddress", + "properties": { + "endpointId": { + "description": "Specifies an endpoint identifier to distinguish between multiple endpoints for the same internal listener in a single upstream pool. Only used in the upstream addresses for tracking changes to individual endpoints. This, for example, may be set to the final destination IP for the target internal listener.", + "type": "string" + }, + "serverListenerName": { + "description": "Specifies the :ref:`name ` of the internal listener.", + "type": "string" + } + }, + "type": "object" + }, + "Extension": { + "description": "Version and identification for an Envoy extension. [#next-free-field: 7]", + "id": "Extension", + "properties": { + "category": { + "description": "Category of the extension. Extension category names use reverse DNS notation. For instance \"envoy.filters.listener\" for Envoy's built-in listener filters or \"com.acme.filters.http\" for HTTP filters from acme.com vendor. [#comment:", + "type": "string" + }, + "disabled": { + "description": "Indicates that the extension is present but was disabled via dynamic configuration.", + "type": "boolean" + }, + "name": { + "description": "This is the name of the Envoy filter as specified in the Envoy configuration, e.g. envoy.filters.http.router, com.acme.widget.", + "type": "string" + }, + "typeDescriptor": { + "deprecated": true, + "description": "[#not-implemented-hide:] Type descriptor of extension configuration proto. [#comment:", + "type": "string" + }, + "typeUrls": { + "description": "Type URLs of extension configuration protos.", + "items": { + "type": "string" + }, + "type": "array" + }, + "version": { + "$ref": "BuildVersion", + "description": "The version is a property of the extension and maintained independently of other extensions and the Envoy API. This field is not set when extension did not provide version information." + } + }, + "type": "object" + }, + "GenericXdsConfig": { + "description": "GenericXdsConfig is used to specify the config status and the dump of any xDS resource identified by their type URL. It is the generalized version of the now deprecated ListenersConfigDump, ClustersConfigDump etc [#next-free-field: 10]", + "id": "GenericXdsConfig", + "properties": { + "clientStatus": { + "description": "Per xDS resource status from the view of a xDS client", + "enum": [ + "UNKNOWN", + "REQUESTED", + "DOES_NOT_EXIST", + "ACKED", + "NACKED" + ], + "enumDescriptions": [ + "Resource status is not available/unknown.", + "Client requested this resource but hasn't received any update from management server. The client will not fail requests, but will queue them until update arrives or the client times out waiting for the resource.", + "This resource has been requested by the client but has either not been delivered by the server or was previously delivered by the server and then subsequently removed from resources provided by the server. For more information, please refer to the :ref:`\"Knowing When a Requested Resource Does Not Exist\" ` section.", + "Client received this resource and replied with ACK.", + "Client received this resource and replied with NACK." + ], + "type": "string" + }, + "configStatus": { + "description": "Per xDS resource config status. It is generated by management servers. It will not be present if the CSDS server is an xDS client.", + "enum": [ + "UNKNOWN", + "SYNCED", + "NOT_SENT", + "STALE", + "ERROR" + ], + "enumDescriptions": [ + "Status info is not available/unknown.", + "Management server has sent the config to client and received ACK.", + "Config is not sent.", + "Management server has sent the config to client but hasn’t received ACK/NACK.", + "Management server has sent the config to client but received NACK. The attached config dump will be the latest config (the rejected one), since it is the persisted version in the management server." + ], + "type": "string" + }, + "errorState": { + "$ref": "UpdateFailureState", + "description": "Set if the last update failed, cleared after the next successful update. The *error_state* field contains the rejected version of this particular resource along with the reason and timestamp. For successfully updated or acknowledged resource, this field should be empty. [#not-implemented-hide:]" + }, + "isStaticResource": { + "description": "Is static resource is true if it is specified in the config supplied through the file at the startup.", + "type": "boolean" + }, + "lastUpdated": { + "description": "Timestamp when the xDS resource was last updated", + "format": "google-datetime", + "type": "string" + }, + "name": { + "description": "Name of the xDS resource", + "type": "string" + }, + "typeUrl": { + "description": "Type_url represents the fully qualified name of xDS resource type like envoy.v3.Cluster, envoy.v3.ClusterLoadAssignment etc.", + "type": "string" + }, + "versionInfo": { + "description": "This is the :ref:`version_info ` in the last processed xDS discovery response. If there are only static bootstrap listeners, this field will be \"\"", + "type": "string" + }, + "xdsConfig": { + "additionalProperties": { + "description": "Properties of the object. Contains field @type with type URL.", + "type": "any" + }, + "description": "The xDS resource config. Actual content depends on the type", + "type": "object" + } + }, + "type": "object" + }, + "GoogleRE2": { + "description": "Google's `RE2 `_ regex engine. The regex string must adhere to the documented `syntax `_. The engine is designed to complete execution in linear time as well as limit the amount of memory used. Envoy supports program size checking via runtime. The runtime keys ``re2.max_program_size.error_level`` and ``re2.max_program_size.warn_level`` can be set to integers as the maximum program size or complexity that a compiled regex can have before an exception is thrown or a warning is logged, respectively. ``re2.max_program_size.error_level`` defaults to 100, and ``re2.max_program_size.warn_level`` has no default if unset (will not check/log a warning). Envoy emits two stats for tracking the program size of regexes: the histogram ``re2.program_size``, which records the program size, and the counter ``re2.exceeded_warn_level``, which is incremented each time the program size exceeds the warn level threshold.", + "id": "GoogleRE2", + "properties": { + "maxProgramSize": { + "deprecated": true, + "description": "This field controls the RE2 \"program size\" which is a rough estimate of how complex a compiled regex is to evaluate. A regex that has a program size greater than the configured value will fail to compile. In this case, the configured max program size can be increased or the regex can be simplified. If not specified, the default is 100. This field is deprecated; regexp validation should be performed on the management server instead of being done by each individual client. .. note:: Although this field is deprecated, the program size will still be checked against the global ``re2.max_program_size.error_level`` runtime value.", + "format": "uint32", + "type": "integer" + } + }, + "type": "object" + }, + "InlineScopedRouteConfigs": { + "id": "InlineScopedRouteConfigs", + "properties": { + "lastUpdated": { + "description": "The timestamp when the scoped route config set was last updated.", + "format": "google-datetime", + "type": "string" + }, + "name": { + "description": "The name assigned to the scoped route configurations.", + "type": "string" + }, + "scopedRouteConfigs": { + "description": "The scoped route configurations.", + "items": { + "additionalProperties": { + "description": "Properties of the object. Contains field @type with type URL.", + "type": "any" + }, + "type": "object" + }, + "type": "array" + } + }, + "type": "object" + }, + "ListMatcher": { + "description": "Specifies the way to match a list value.", + "id": "ListMatcher", + "properties": { + "oneOf": { + "$ref": "ValueMatcher", + "description": "If specified, at least one of the values in the list must match the value specified." + } + }, + "type": "object" + }, + "ListenersConfigDump": { + "description": "Envoy's listener manager fills this message with all currently known listeners. Listener configuration information can be used to recreate an Envoy configuration by populating all listeners as static listeners or by returning them in a LDS response.", + "id": "ListenersConfigDump", + "properties": { + "dynamicListeners": { + "description": "State for any warming, active, or draining listeners.", + "items": { + "$ref": "DynamicListener" + }, + "type": "array" + }, + "staticListeners": { + "description": "The statically loaded listener configs.", + "items": { + "$ref": "StaticListener" + }, + "type": "array" + }, + "versionInfo": { + "description": "This is the :ref:`version_info ` in the last processed LDS discovery response. If there are only static bootstrap listeners, this field will be \"\".", + "type": "string" + } + }, + "type": "object" + }, + "Locality": { + "description": "Identifies location of where either Envoy runs or where upstream hosts run.", + "id": "Locality", + "properties": { + "region": { + "description": "Region this :ref:`zone ` belongs to.", + "type": "string" + }, + "subZone": { + "description": "When used for locality of upstream hosts, this field further splits zone into smaller chunks of sub-zones so they can be load balanced independently.", + "type": "string" + }, + "zone": { + "description": "Defines the local service zone where Envoy is running. Though optional, it should be set if discovery service routing is used and the discovery service exposes :ref:`zone data `, either in this message or via :option:`--service-zone`. The meaning of zone is context dependent, e.g. `Availability Zone (AZ) `_ on AWS, `Zone `_ on GCP, etc.", + "type": "string" + } + }, + "type": "object" + }, + "Node": { + "description": "Identifies a specific Envoy instance. The node identifier is presented to the management server, which may use this identifier to distinguish per Envoy configuration for serving. [#next-free-field: 13]", + "id": "Node", + "properties": { + "clientFeatures": { + "description": "Client feature support list. These are well known features described in the Envoy API repository for a given major version of an API. Client features use reverse DNS naming scheme, for example ``com.acme.feature``. See :ref:`the list of features ` that xDS client may support.", + "items": { + "type": "string" + }, + "type": "array" + }, + "cluster": { + "description": "Defines the local service cluster name where Envoy is running. Though optional, it should be set if any of the following features are used: :ref:`statsd `, :ref:`health check cluster verification `, :ref:`runtime override directory `, :ref:`user agent addition `, :ref:`HTTP global rate limiting `, :ref:`CDS `, and :ref:`HTTP tracing `, either in this message or via :option:`--service-cluster`.", + "type": "string" + }, + "dynamicParameters": { + "additionalProperties": { + "$ref": "ContextParams" + }, + "description": "Map from xDS resource type URL to dynamic context parameters. These may vary at runtime (unlike other fields in this message). For example, the xDS client may have a shard identifier that changes during the lifetime of the xDS client. In Envoy, this would be achieved by updating the dynamic context on the Server::Instance's LocalInfo context provider. The shard ID dynamic parameter then appears in this field during future discovery requests.", + "type": "object" + }, + "extensions": { + "description": "List of extensions and their versions supported by the node.", + "items": { + "$ref": "Extension" + }, + "type": "array" + }, + "id": { + "description": "An opaque node identifier for the Envoy node. This also provides the local service node name. It should be set if any of the following features are used: :ref:`statsd `, :ref:`CDS `, and :ref:`HTTP tracing `, either in this message or via :option:`--service-node`.", + "type": "string" + }, + "listeningAddresses": { + "deprecated": true, + "description": "Known listening ports on the node as a generic hint to the management server for filtering :ref:`listeners ` to be returned. For example, if there is a listener bound to port 80, the list can optionally contain the SocketAddress ``(0.0.0.0,80)``. The field is optional and just a hint.", + "items": { + "$ref": "Address" + }, + "type": "array" + }, + "locality": { + "$ref": "Locality", + "description": "Locality specifying where the Envoy instance is running." + }, + "metadata": { + "additionalProperties": { + "description": "Properties of the object.", + "type": "any" + }, + "description": "Opaque metadata extending the node identifier. Envoy will pass this directly to the management server.", + "type": "object" + }, + "userAgentBuildVersion": { + "$ref": "BuildVersion", + "description": "Structured version of the entity requesting config." + }, + "userAgentName": { + "description": "Free-form string that identifies the entity requesting config. E.g. \"envoy\" or \"grpc\"", + "type": "string" + }, + "userAgentVersion": { + "description": "Free-form string that identifies the version of the entity requesting config. E.g. \"1.12.2\" or \"abcd1234\", or \"SpecialEnvoyBuild\"", + "type": "string" + } + }, + "type": "object" + }, + "NodeMatcher": { + "description": "Specifies the way to match a Node. The match follows AND semantics.", + "id": "NodeMatcher", + "properties": { + "nodeId": { + "$ref": "StringMatcher", + "description": "Specifies match criteria on the node id." + }, + "nodeMetadatas": { + "description": "Specifies match criteria on the node metadata.", + "items": { + "$ref": "StructMatcher" + }, + "type": "array" + } + }, + "type": "object" + }, + "NullMatch": { + "description": "NullMatch is an empty message to specify a null value.", + "id": "NullMatch", + "properties": {}, + "type": "object" + }, + "PathSegment": { + "description": "Specifies the segment in a path to retrieve value from Struct.", + "id": "PathSegment", + "properties": { + "key": { + "description": "If specified, use the key to retrieve the value in a Struct.", + "type": "string" + } + }, + "type": "object" + }, + "PerXdsConfig": { + "description": "Detailed config (per xDS) with status. [#next-free-field: 8]", + "id": "PerXdsConfig", + "properties": { + "clientStatus": { + "deprecated": true, + "description": "Client config status is populated by xDS clients. Will not be present if the CSDS server is an xDS server. No matter what the client config status is, xDS clients should always dump the most recent accepted xDS config. .. attention:: This field is deprecated. Use :ref:`ClientResourceStatus ` for per-resource config status instead.", + "enum": [ + "CLIENT_UNKNOWN", + "CLIENT_REQUESTED", + "CLIENT_ACKED", + "CLIENT_NACKED" + ], + "enumDescriptions": [ + "Config status is not available/unknown.", + "Client requested the config but hasn't received any config from management server yet.", + "Client received the config and replied with ACK.", + "Client received the config and replied with NACK. Notably, the attached config dump is not the NACKed version, but the most recent accepted one. If no config is accepted yet, the attached config dump will be empty." + ], + "type": "string" + }, + "clusterConfig": { + "$ref": "ClustersConfigDump" + }, + "endpointConfig": { + "$ref": "EndpointsConfigDump" + }, + "listenerConfig": { + "$ref": "ListenersConfigDump" + }, + "routeConfig": { + "$ref": "RoutesConfigDump" + }, + "scopedRouteConfig": { + "$ref": "ScopedRoutesConfigDump" + }, + "status": { + "description": "Config status generated by management servers. Will not be present if the CSDS server is an xDS client.", + "enum": [ + "UNKNOWN", + "SYNCED", + "NOT_SENT", + "STALE", + "ERROR" + ], + "enumDescriptions": [ + "Status info is not available/unknown.", + "Management server has sent the config to client and received ACK.", + "Config is not sent.", + "Management server has sent the config to client but hasn’t received ACK/NACK.", + "Management server has sent the config to client but received NACK. The attached config dump will be the latest config (the rejected one), since it is the persisted version in the management server." + ], + "type": "string" + } + }, + "type": "object" + }, + "Pipe": { + "id": "Pipe", + "properties": { + "mode": { + "description": "The mode for the Pipe. Not applicable for abstract sockets.", + "format": "uint32", + "type": "integer" + }, + "path": { + "description": "Unix Domain Socket path. On Linux, paths starting with '@' will use the abstract namespace. The starting '@' is replaced by a null byte by Envoy. Paths starting with '@' will result in an error in environments other than Linux.", + "type": "string" + } + }, + "type": "object" + }, + "RegexMatcher": { + "description": "A regex matcher designed for safety when used with untrusted input.", + "id": "RegexMatcher", + "properties": { + "googleRe2": { + "$ref": "GoogleRE2", + "deprecated": true, + "description": "Google's RE2 regex engine." + }, + "regex": { + "description": "The regex match string. The string must be supported by the configured engine. The regex is matched against the full string, not as a partial match.", + "type": "string" + } + }, + "type": "object" + }, + "RoutesConfigDump": { + "description": "Envoy's RDS implementation fills this message with all currently loaded routes, as described by their RouteConfiguration objects. Static routes that are either defined in the bootstrap configuration or defined inline while configuring listeners are separated from those configured dynamically via RDS. Route configuration information can be used to recreate an Envoy configuration by populating all routes as static routes or by returning them in RDS responses.", + "id": "RoutesConfigDump", + "properties": { + "dynamicRouteConfigs": { + "description": "The dynamically loaded route configs.", + "items": { + "$ref": "DynamicRouteConfig" + }, + "type": "array" + }, + "staticRouteConfigs": { + "description": "The statically loaded route configs.", + "items": { + "$ref": "StaticRouteConfig" + }, + "type": "array" + } + }, + "type": "object" + }, + "ScopedRoutesConfigDump": { + "description": "Envoy's scoped RDS implementation fills this message with all currently loaded route configuration scopes (defined via ScopedRouteConfigurationsSet protos). This message lists both the scopes defined inline with the higher order object (i.e., the HttpConnectionManager) and the dynamically obtained scopes via the SRDS API.", + "id": "ScopedRoutesConfigDump", + "properties": { + "dynamicScopedRouteConfigs": { + "description": "The dynamically loaded scoped route configs.", + "items": { + "$ref": "DynamicScopedRouteConfigs" + }, + "type": "array" + }, + "inlineScopedRouteConfigs": { + "description": "The statically loaded scoped route configs.", + "items": { + "$ref": "InlineScopedRouteConfigs" + }, + "type": "array" + } + }, + "type": "object" + }, + "SemanticVersion": { + "description": "Envoy uses SemVer (https://semver.org/). Major/minor versions indicate expected behaviors and APIs, the patch version field is used only for security fixes and can be generally ignored.", + "id": "SemanticVersion", + "properties": { + "majorNumber": { + "format": "uint32", + "type": "integer" + }, + "minorNumber": { + "format": "uint32", + "type": "integer" + }, + "patch": { + "format": "uint32", + "type": "integer" + } + }, + "type": "object" + }, + "SocketAddress": { + "description": "[#next-free-field: 7]", + "id": "SocketAddress", + "properties": { + "address": { + "description": "The address for this socket. :ref:`Listeners ` will bind to the address. An empty address is not allowed. Specify ``0.0.0.0`` or ``::`` to bind to any address. [#comment:TODO(zuercher) reinstate when implemented: It is possible to distinguish a Listener address via the prefix/suffix matching in :ref:`FilterChainMatch `.] When used within an upstream :ref:`BindConfig `, the address controls the source address of outbound connections. For :ref:`clusters `, the cluster type determines whether the address must be an IP (``STATIC`` or ``EDS`` clusters) or a hostname resolved by DNS (``STRICT_DNS`` or ``LOGICAL_DNS`` clusters). Address resolution can be customized via :ref:`resolver_name `.", + "type": "string" + }, + "ipv4Compat": { + "description": "When binding to an IPv6 address above, this enables `IPv4 compatibility `_. Binding to ``::`` will allow both IPv4 and IPv6 connections, with peer IPv4 addresses mapped into IPv6 space as ``::FFFF:``.", + "type": "boolean" + }, + "namedPort": { + "description": "This is only valid if :ref:`resolver_name ` is specified below and the named resolver is capable of named port resolution.", + "type": "string" + }, + "portValue": { + "format": "uint32", + "type": "integer" + }, + "protocol": { + "enum": [ + "TCP", + "UDP" + ], + "enumDescriptions": [ + "", + "" + ], + "type": "string" + }, + "resolverName": { + "description": "The name of the custom resolver. This must have been registered with Envoy. If this is empty, a context dependent default applies. If the address is a concrete IP address, no resolution will occur. If address is a hostname this should be set for resolution other than DNS. Specifying a custom resolver with ``STRICT_DNS`` or ``LOGICAL_DNS`` will generate an error at runtime.", + "type": "string" + } + }, + "type": "object" + }, + "StaticCluster": { + "description": "Describes a statically loaded cluster.", + "id": "StaticCluster", + "properties": { + "cluster": { + "additionalProperties": { + "description": "Properties of the object. Contains field @type with type URL.", + "type": "any" + }, + "description": "The cluster config.", + "type": "object" + }, + "lastUpdated": { + "description": "The timestamp when the Cluster was last updated.", + "format": "google-datetime", + "type": "string" + } + }, + "type": "object" + }, + "StaticEndpointConfig": { + "id": "StaticEndpointConfig", + "properties": { + "endpointConfig": { + "additionalProperties": { + "description": "Properties of the object. Contains field @type with type URL.", + "type": "any" + }, + "description": "The endpoint config.", + "type": "object" + }, + "lastUpdated": { + "description": "[#not-implemented-hide:] The timestamp when the Endpoint was last updated.", + "format": "google-datetime", + "type": "string" + } + }, + "type": "object" + }, + "StaticListener": { + "description": "Describes a statically loaded listener.", + "id": "StaticListener", + "properties": { + "lastUpdated": { + "description": "The timestamp when the Listener was last successfully updated.", + "format": "google-datetime", + "type": "string" + }, + "listener": { + "additionalProperties": { + "description": "Properties of the object. Contains field @type with type URL.", + "type": "any" + }, + "description": "The listener config.", + "type": "object" + } + }, + "type": "object" + }, + "StaticRouteConfig": { + "id": "StaticRouteConfig", + "properties": { + "lastUpdated": { + "description": "The timestamp when the Route was last updated.", + "format": "google-datetime", + "type": "string" + }, + "routeConfig": { + "additionalProperties": { + "description": "Properties of the object. Contains field @type with type URL.", + "type": "any" + }, + "description": "The route config.", + "type": "object" + } + }, + "type": "object" + }, + "StringMatcher": { + "description": "Specifies the way to match a string. [#next-free-field: 8]", + "id": "StringMatcher", + "properties": { + "contains": { + "description": "The input string must have the substring specified here. Note: empty contains match is not allowed, please use regex instead. Examples: * ``abc`` matches the value ``xyz.abc.def``", + "type": "string" + }, + "exact": { + "description": "The input string must match exactly the string specified here. Examples: * ``abc`` only matches the value ``abc``.", + "type": "string" + }, + "ignoreCase": { + "description": "If true, indicates the exact/prefix/suffix/contains matching should be case insensitive. This has no effect for the safe_regex match. For example, the matcher ``data`` will match both input string ``Data`` and ``data`` if set to true.", + "type": "boolean" + }, + "prefix": { + "description": "The input string must have the prefix specified here. Note: empty prefix is not allowed, please use regex instead. Examples: * ``abc`` matches the value ``abc.xyz``", + "type": "string" + }, + "safeRegex": { + "$ref": "RegexMatcher", + "description": "The input string must match the regular expression specified here." + }, + "suffix": { + "description": "The input string must have the suffix specified here. Note: empty prefix is not allowed, please use regex instead. Examples: * ``abc`` matches the value ``xyz.abc``", + "type": "string" + } + }, + "type": "object" + }, + "StructMatcher": { + "description": "StructMatcher provides a general interface to check if a given value is matched in google.protobuf.Struct. It uses ``path`` to retrieve the value from the struct and then check if it's matched to the specified value. For example, for the following Struct: .. code-block:: yaml fields: a: struct_value: fields: b: struct_value: fields: c: string_value: pro t: list_value: values: - string_value: m - string_value: n The following MetadataMatcher is matched as the path [a, b, c] will retrieve a string value \"pro\" from the Metadata which is matched to the specified prefix match. .. code-block:: yaml path: - key: a - key: b - key: c value: string_match: prefix: pr The following StructMatcher is matched as the code will match one of the string values in the list at the path [a, t]. .. code-block:: yaml path: - key: a - key: t value: list_match: one_of: string_match: exact: m An example use of StructMatcher is to match metadata in envoy.v*.core.Node.", + "id": "StructMatcher", + "properties": { + "path": { + "description": "The path to retrieve the Value from the Struct.", + "items": { + "$ref": "PathSegment" + }, + "type": "array" + }, + "value": { + "$ref": "ValueMatcher", + "description": "The StructMatcher is matched if the value retrieved by path is matched to this value." + } + }, + "type": "object" + }, + "UpdateFailureState": { + "id": "UpdateFailureState", + "properties": { + "details": { + "description": "Details about the last failed update attempt.", + "type": "string" + }, + "failedConfiguration": { + "additionalProperties": { + "description": "Properties of the object. Contains field @type with type URL.", + "type": "any" + }, + "description": "What the component configuration would have been if the update had succeeded. This field may not be populated by xDS clients due to storage overhead.", + "type": "object" + }, + "lastUpdateAttempt": { + "description": "Time of the latest failed update attempt.", + "format": "google-datetime", + "type": "string" + }, + "versionInfo": { + "description": "This is the version of the rejected resource. [#not-implemented-hide:]", + "type": "string" + } + }, + "type": "object" + }, + "ValueMatcher": { + "description": "Specifies the way to match a ProtobufWkt::Value. Primitive values and ListValue are supported. StructValue is not supported and is always not matched. [#next-free-field: 7]", + "id": "ValueMatcher", + "properties": { + "boolMatch": { + "description": "If specified, a match occurs if and only if the target value is a bool value and is equal to this field.", + "type": "boolean" + }, + "doubleMatch": { + "$ref": "DoubleMatcher", + "description": "If specified, a match occurs if and only if the target value is a double value and is matched to this field." + }, + "listMatch": { + "$ref": "ListMatcher", + "description": "If specified, a match occurs if and only if the target value is a list value and is matched to this field." + }, + "nullMatch": { + "$ref": "NullMatch", + "description": "If specified, a match occurs if and only if the target value is a NullValue." + }, + "presentMatch": { + "description": "If specified, value match will be performed based on whether the path is referring to a valid primitive value in the metadata. If the path is referring to a non-primitive value, the result is always not matched.", + "type": "boolean" + }, + "stringMatch": { + "$ref": "StringMatcher", + "description": "If specified, a match occurs if and only if the target value is a string value and is matched to this field." + } + }, + "type": "object" + } + }, + "servicePath": "", + "title": "Traffic Director API", + "version": "v3", + "version_module": true +} \ No newline at end of file diff --git a/trafficdirector/v3/trafficdirector-gen.go b/trafficdirector/v3/trafficdirector-gen.go new file mode 100644 index 00000000000..a14ef3852f3 --- /dev/null +++ b/trafficdirector/v3/trafficdirector-gen.go @@ -0,0 +1,2209 @@ +// Copyright 2023 Google LLC. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +// Code generated file. DO NOT EDIT. + +// Package trafficdirector provides access to the Traffic Director API. +// +// For product documentation, see: https://cloud.google.com/traffic-director +// +// # Library status +// +// These client libraries are officially supported by Google. However, this +// library is considered complete and is in maintenance mode. This means +// that we will address critical bugs and security issues but will not add +// any new features. +// +// When possible, we recommend using our newer +// [Cloud Client Libraries for Go](https://pkg.go.dev/cloud.google.com/go) +// that are still actively being worked and iterated on. +// +// # Creating a client +// +// Usage example: +// +// import "google.golang.org/api/trafficdirector/v3" +// ... +// ctx := context.Background() +// trafficdirectorService, err := trafficdirector.NewService(ctx) +// +// In this example, Google Application Default Credentials are used for +// authentication. For information on how to create and obtain Application +// Default Credentials, see https://developers.google.com/identity/protocols/application-default-credentials. +// +// # Other authentication options +// +// To use an API key for authentication (note: some APIs do not support API +// keys), use [google.golang.org/api/option.WithAPIKey]: +// +// trafficdirectorService, err := trafficdirector.NewService(ctx, option.WithAPIKey("AIza...")) +// +// To use an OAuth token (e.g., a user token obtained via a three-legged OAuth +// flow, use [google.golang.org/api/option.WithTokenSource]: +// +// config := &oauth2.Config{...} +// // ... +// token, err := config.Exchange(ctx, ...) +// trafficdirectorService, err := trafficdirector.NewService(ctx, option.WithTokenSource(config.TokenSource(ctx, token))) +// +// See [google.golang.org/api/option.ClientOption] for details on options. +package trafficdirector // import "google.golang.org/api/trafficdirector/v3" + +import ( + "bytes" + "context" + "encoding/json" + "errors" + "fmt" + "io" + "net/http" + "net/url" + "strconv" + "strings" + + googleapi "google.golang.org/api/googleapi" + internal "google.golang.org/api/internal" + gensupport "google.golang.org/api/internal/gensupport" + option "google.golang.org/api/option" + internaloption "google.golang.org/api/option/internaloption" + htransport "google.golang.org/api/transport/http" +) + +// Always reference these packages, just in case the auto-generated code +// below doesn't. +var _ = bytes.NewBuffer +var _ = strconv.Itoa +var _ = fmt.Sprintf +var _ = json.NewDecoder +var _ = io.Copy +var _ = url.Parse +var _ = gensupport.MarshalJSON +var _ = googleapi.Version +var _ = errors.New +var _ = strings.Replace +var _ = context.Canceled +var _ = internaloption.WithDefaultEndpoint +var _ = internal.Version + +const apiId = "trafficdirector:v3" +const apiName = "trafficdirector" +const apiVersion = "v3" +const basePath = "https://trafficdirector.googleapis.com/" +const mtlsBasePath = "https://trafficdirector.mtls.googleapis.com/" + +// OAuth2 scopes used by this API. +const ( + // See, edit, configure, and delete your Google Cloud data and see the + // email address for your Google Account. + CloudPlatformScope = "https://www.googleapis.com/auth/cloud-platform" +) + +// NewService creates a new Service. +func NewService(ctx context.Context, opts ...option.ClientOption) (*Service, error) { + scopesOption := internaloption.WithDefaultScopes( + "https://www.googleapis.com/auth/cloud-platform", + ) + // NOTE: prepend, so we don't override user-specified scopes. + opts = append([]option.ClientOption{scopesOption}, opts...) + opts = append(opts, internaloption.WithDefaultEndpoint(basePath)) + opts = append(opts, internaloption.WithDefaultMTLSEndpoint(mtlsBasePath)) + client, endpoint, err := htransport.NewClient(ctx, opts...) + if err != nil { + return nil, err + } + s, err := New(client) + if err != nil { + return nil, err + } + if endpoint != "" { + s.BasePath = endpoint + } + return s, nil +} + +// New creates a new Service. It uses the provided http.Client for requests. +// +// Deprecated: please use NewService instead. +// To provide a custom HTTP client, use option.WithHTTPClient. +// If you are using google.golang.org/api/googleapis/transport.APIKey, use option.WithAPIKey with NewService instead. +func New(client *http.Client) (*Service, error) { + if client == nil { + return nil, errors.New("client is nil") + } + s := &Service{client: client, BasePath: basePath} + s.Discovery = NewDiscoveryService(s) + return s, nil +} + +type Service struct { + client *http.Client + BasePath string // API endpoint base URL + UserAgent string // optional additional User-Agent fragment + + Discovery *DiscoveryService +} + +func (s *Service) userAgent() string { + if s.UserAgent == "" { + return googleapi.UserAgent + } + return googleapi.UserAgent + " " + s.UserAgent +} + +func NewDiscoveryService(s *Service) *DiscoveryService { + rs := &DiscoveryService{s: s} + return rs +} + +type DiscoveryService struct { + s *Service +} + +// Address: Addresses specify either a logical or physical address and +// port, which are used to tell Envoy where to bind/listen, connect to +// upstream and find management servers. +type Address struct { + // EnvoyInternalAddress: Specifies a user-space address handled by + // :ref:`internal listeners `. + EnvoyInternalAddress *EnvoyInternalAddress `json:"envoyInternalAddress,omitempty"` + + Pipe *Pipe `json:"pipe,omitempty"` + + SocketAddress *SocketAddress `json:"socketAddress,omitempty"` + + // ForceSendFields is a list of field names (e.g. + // "EnvoyInternalAddress") to unconditionally include in API requests. + // By default, fields with empty or default values are omitted from API + // requests. However, any non-pointer, non-interface field appearing in + // ForceSendFields will be sent to the server regardless of whether the + // field is empty or not. This may be used to include empty fields in + // Patch requests. + ForceSendFields []string `json:"-"` + + // NullFields is a list of field names (e.g. "EnvoyInternalAddress") to + // include in API requests with the JSON null value. By default, fields + // with empty values are omitted from API requests. However, any field + // with an empty value appearing in NullFields will be sent to the + // server as null. It is an error if a field in this list has a + // non-empty value. This may be used to include null fields in Patch + // requests. + NullFields []string `json:"-"` +} + +func (s *Address) MarshalJSON() ([]byte, error) { + type NoMethod Address + raw := NoMethod(*s) + return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) +} + +// BuildVersion: BuildVersion combines SemVer version of extension with +// free-form build information (i.e. 'alpha', 'private-build') as a set +// of strings. +type BuildVersion struct { + // Metadata: Free-form build information. Envoy defines several well + // known keys in the source/common/version/version.h file + Metadata googleapi.RawMessage `json:"metadata,omitempty"` + + // Version: SemVer version of extension. + Version *SemanticVersion `json:"version,omitempty"` + + // ForceSendFields is a list of field names (e.g. "Metadata") to + // unconditionally include in API requests. By default, fields with + // empty or default values are omitted from API requests. However, any + // non-pointer, non-interface field appearing in ForceSendFields will be + // sent to the server regardless of whether the field is empty or not. + // This may be used to include empty fields in Patch requests. + ForceSendFields []string `json:"-"` + + // NullFields is a list of field names (e.g. "Metadata") to include in + // API requests with the JSON null value. By default, fields with empty + // values are omitted from API requests. However, any field with an + // empty value appearing in NullFields will be sent to the server as + // null. It is an error if a field in this list has a non-empty value. + // This may be used to include null fields in Patch requests. + NullFields []string `json:"-"` +} + +func (s *BuildVersion) MarshalJSON() ([]byte, error) { + type NoMethod BuildVersion + raw := NoMethod(*s) + return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) +} + +// ClientConfig: All xds configs for a particular client. +type ClientConfig struct { + // GenericXdsConfigs: Represents generic xDS config and the exact config + // structure depends on the type URL (like Cluster if it is CDS) + GenericXdsConfigs []*GenericXdsConfig `json:"genericXdsConfigs,omitempty"` + + // Node: Node for a particular client. + Node *Node `json:"node,omitempty"` + + // XdsConfig: This field is deprecated in favor of generic_xds_configs + // which is much simpler and uniform in structure. + XdsConfig []*PerXdsConfig `json:"xdsConfig,omitempty"` + + // ForceSendFields is a list of field names (e.g. "GenericXdsConfigs") + // to unconditionally include in API requests. By default, fields with + // empty or default values are omitted from API requests. However, any + // non-pointer, non-interface field appearing in ForceSendFields will be + // sent to the server regardless of whether the field is empty or not. + // This may be used to include empty fields in Patch requests. + ForceSendFields []string `json:"-"` + + // NullFields is a list of field names (e.g. "GenericXdsConfigs") to + // include in API requests with the JSON null value. By default, fields + // with empty values are omitted from API requests. However, any field + // with an empty value appearing in NullFields will be sent to the + // server as null. It is an error if a field in this list has a + // non-empty value. This may be used to include null fields in Patch + // requests. + NullFields []string `json:"-"` +} + +func (s *ClientConfig) MarshalJSON() ([]byte, error) { + type NoMethod ClientConfig + raw := NoMethod(*s) + return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) +} + +// ClientStatusRequest: Request for client status of clients identified +// by a list of NodeMatchers. +type ClientStatusRequest struct { + // ExcludeResourceContents: If true, the server will not include the + // resource contents in the response (i.e., the + // generic_xds_configs.xds_config field will not be populated). + // [#not-implemented-hide:] + ExcludeResourceContents bool `json:"excludeResourceContents,omitempty"` + + // Node: The node making the csds request. + Node *Node `json:"node,omitempty"` + + // NodeMatchers: Management server can use these match criteria to + // identify clients. The match follows OR semantics. + NodeMatchers []*NodeMatcher `json:"nodeMatchers,omitempty"` + + // ForceSendFields is a list of field names (e.g. + // "ExcludeResourceContents") to unconditionally include in API + // requests. By default, fields with empty or default values are omitted + // from API requests. However, any non-pointer, non-interface field + // appearing in ForceSendFields will be sent to the server regardless of + // whether the field is empty or not. This may be used to include empty + // fields in Patch requests. + ForceSendFields []string `json:"-"` + + // NullFields is a list of field names (e.g. "ExcludeResourceContents") + // to include in API requests with the JSON null value. By default, + // fields with empty values are omitted from API requests. However, any + // field with an empty value appearing in NullFields will be sent to the + // server as null. It is an error if a field in this list has a + // non-empty value. This may be used to include null fields in Patch + // requests. + NullFields []string `json:"-"` +} + +func (s *ClientStatusRequest) MarshalJSON() ([]byte, error) { + type NoMethod ClientStatusRequest + raw := NoMethod(*s) + return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) +} + +type ClientStatusResponse struct { + // Config: Client configs for the clients specified in the + // ClientStatusRequest. + Config []*ClientConfig `json:"config,omitempty"` + + // ServerResponse contains the HTTP response code and headers from the + // server. + googleapi.ServerResponse `json:"-"` + + // ForceSendFields is a list of field names (e.g. "Config") to + // unconditionally include in API requests. By default, fields with + // empty or default values are omitted from API requests. However, any + // non-pointer, non-interface field appearing in ForceSendFields will be + // sent to the server regardless of whether the field is empty or not. + // This may be used to include empty fields in Patch requests. + ForceSendFields []string `json:"-"` + + // NullFields is a list of field names (e.g. "Config") to include in API + // requests with the JSON null value. By default, fields with empty + // values are omitted from API requests. However, any field with an + // empty value appearing in NullFields will be sent to the server as + // null. It is an error if a field in this list has a non-empty value. + // This may be used to include null fields in Patch requests. + NullFields []string `json:"-"` +} + +func (s *ClientStatusResponse) MarshalJSON() ([]byte, error) { + type NoMethod ClientStatusResponse + raw := NoMethod(*s) + return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) +} + +// ClustersConfigDump: Envoy's cluster manager fills this message with +// all currently known clusters. Cluster configuration information can +// be used to recreate an Envoy configuration by populating all clusters +// as static clusters or by returning them in a CDS response. +type ClustersConfigDump struct { + // DynamicActiveClusters: The dynamically loaded active clusters. These + // are clusters that are available to service data plane traffic. + DynamicActiveClusters []*DynamicCluster `json:"dynamicActiveClusters,omitempty"` + + // DynamicWarmingClusters: The dynamically loaded warming clusters. + // These are clusters that are currently undergoing warming in + // preparation to service data plane traffic. Note that if attempting to + // recreate an Envoy configuration from a configuration dump, the + // warming clusters should generally be discarded. + DynamicWarmingClusters []*DynamicCluster `json:"dynamicWarmingClusters,omitempty"` + + // StaticClusters: The statically loaded cluster configs. + StaticClusters []*StaticCluster `json:"staticClusters,omitempty"` + + // VersionInfo: This is the :ref:`version_info ` in the last processed + // CDS discovery response. If there are only static bootstrap clusters, + // this field will be "". + VersionInfo string `json:"versionInfo,omitempty"` + + // ForceSendFields is a list of field names (e.g. + // "DynamicActiveClusters") to unconditionally include in API requests. + // By default, fields with empty or default values are omitted from API + // requests. However, any non-pointer, non-interface field appearing in + // ForceSendFields will be sent to the server regardless of whether the + // field is empty or not. This may be used to include empty fields in + // Patch requests. + ForceSendFields []string `json:"-"` + + // NullFields is a list of field names (e.g. "DynamicActiveClusters") to + // include in API requests with the JSON null value. By default, fields + // with empty values are omitted from API requests. However, any field + // with an empty value appearing in NullFields will be sent to the + // server as null. It is an error if a field in this list has a + // non-empty value. This may be used to include null fields in Patch + // requests. + NullFields []string `json:"-"` +} + +func (s *ClustersConfigDump) MarshalJSON() ([]byte, error) { + type NoMethod ClustersConfigDump + raw := NoMethod(*s) + return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) +} + +// ContextParams: Additional parameters that can be used to select +// resource variants. These include any global context parameters, +// per-resource type client feature capabilities and per-resource type +// functional attributes. All per-resource type attributes will be +// `xds.resource.` prefixed and some of these are documented below: +// `xds.resource.listening_address`: The value is "IP:port" (e.g. +// "10.1.1.3:8080") which is the listening address of a Listener. Used +// in a Listener resource query. +type ContextParams struct { + Params map[string]string `json:"params,omitempty"` + + // ForceSendFields is a list of field names (e.g. "Params") to + // unconditionally include in API requests. By default, fields with + // empty or default values are omitted from API requests. However, any + // non-pointer, non-interface field appearing in ForceSendFields will be + // sent to the server regardless of whether the field is empty or not. + // This may be used to include empty fields in Patch requests. + ForceSendFields []string `json:"-"` + + // NullFields is a list of field names (e.g. "Params") to include in API + // requests with the JSON null value. By default, fields with empty + // values are omitted from API requests. However, any field with an + // empty value appearing in NullFields will be sent to the server as + // null. It is an error if a field in this list has a non-empty value. + // This may be used to include null fields in Patch requests. + NullFields []string `json:"-"` +} + +func (s *ContextParams) MarshalJSON() ([]byte, error) { + type NoMethod ContextParams + raw := NoMethod(*s) + return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) +} + +// DoubleMatcher: Specifies the way to match a double value. +type DoubleMatcher struct { + // Exact: If specified, the input double value must be equal to the + // value specified here. + Exact float64 `json:"exact,omitempty"` + + // Range: If specified, the input double value must be in the range + // specified here. Note: The range is using half-open interval semantics + // [start, end). + Range *DoubleRange `json:"range,omitempty"` + + // ForceSendFields is a list of field names (e.g. "Exact") to + // unconditionally include in API requests. By default, fields with + // empty or default values are omitted from API requests. However, any + // non-pointer, non-interface field appearing in ForceSendFields will be + // sent to the server regardless of whether the field is empty or not. + // This may be used to include empty fields in Patch requests. + ForceSendFields []string `json:"-"` + + // NullFields is a list of field names (e.g. "Exact") to include in API + // requests with the JSON null value. By default, fields with empty + // values are omitted from API requests. However, any field with an + // empty value appearing in NullFields will be sent to the server as + // null. It is an error if a field in this list has a non-empty value. + // This may be used to include null fields in Patch requests. + NullFields []string `json:"-"` +} + +func (s *DoubleMatcher) MarshalJSON() ([]byte, error) { + type NoMethod DoubleMatcher + raw := NoMethod(*s) + return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) +} + +func (s *DoubleMatcher) UnmarshalJSON(data []byte) error { + type NoMethod DoubleMatcher + var s1 struct { + Exact gensupport.JSONFloat64 `json:"exact"` + *NoMethod + } + s1.NoMethod = (*NoMethod)(s) + if err := json.Unmarshal(data, &s1); err != nil { + return err + } + s.Exact = float64(s1.Exact) + return nil +} + +// DoubleRange: Specifies the double start and end of the range using +// half-open interval semantics [start, end). +type DoubleRange struct { + // End: end of the range (exclusive) + End float64 `json:"end,omitempty"` + + // Start: start of the range (inclusive) + Start float64 `json:"start,omitempty"` + + // ForceSendFields is a list of field names (e.g. "End") to + // unconditionally include in API requests. By default, fields with + // empty or default values are omitted from API requests. However, any + // non-pointer, non-interface field appearing in ForceSendFields will be + // sent to the server regardless of whether the field is empty or not. + // This may be used to include empty fields in Patch requests. + ForceSendFields []string `json:"-"` + + // NullFields is a list of field names (e.g. "End") to include in API + // requests with the JSON null value. By default, fields with empty + // values are omitted from API requests. However, any field with an + // empty value appearing in NullFields will be sent to the server as + // null. It is an error if a field in this list has a non-empty value. + // This may be used to include null fields in Patch requests. + NullFields []string `json:"-"` +} + +func (s *DoubleRange) MarshalJSON() ([]byte, error) { + type NoMethod DoubleRange + raw := NoMethod(*s) + return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) +} + +func (s *DoubleRange) UnmarshalJSON(data []byte) error { + type NoMethod DoubleRange + var s1 struct { + End gensupport.JSONFloat64 `json:"end"` + Start gensupport.JSONFloat64 `json:"start"` + *NoMethod + } + s1.NoMethod = (*NoMethod)(s) + if err := json.Unmarshal(data, &s1); err != nil { + return err + } + s.End = float64(s1.End) + s.Start = float64(s1.Start) + return nil +} + +// DynamicCluster: Describes a dynamically loaded cluster via the CDS +// API. [#next-free-field: 6] +type DynamicCluster struct { + // ClientStatus: The client status of this resource. + // [#not-implemented-hide:] + // + // Possible values: + // "UNKNOWN" - Resource status is not available/unknown. + // "REQUESTED" - Client requested this resource but hasn't received + // any update from management server. The client will not fail requests, + // but will queue them until update arrives or the client times out + // waiting for the resource. + // "DOES_NOT_EXIST" - This resource has been requested by the client + // but has either not been delivered by the server or was previously + // delivered by the server and then subsequently removed from resources + // provided by the server. For more information, please refer to the + // :ref:"Knowing When a Requested Resource Does Not Exist" ` section. + // "ACKED" - Client received this resource and replied with ACK. + // "NACKED" - Client received this resource and replied with NACK. + ClientStatus string `json:"clientStatus,omitempty"` + + // Cluster: The cluster config. + Cluster googleapi.RawMessage `json:"cluster,omitempty"` + + // ErrorState: Set if the last update failed, cleared after the next + // successful update. The ``error_state`` field contains the rejected + // version of this particular resource along with the reason and + // timestamp. For successfully updated or acknowledged resource, this + // field should be empty. [#not-implemented-hide:] + ErrorState *UpdateFailureState `json:"errorState,omitempty"` + + // LastUpdated: The timestamp when the Cluster was last updated. + LastUpdated string `json:"lastUpdated,omitempty"` + + // VersionInfo: This is the per-resource version information. This + // version is currently taken from the :ref:`version_info ` field at the + // time that the cluster was loaded. In the future, discrete per-cluster + // versions may be supported by the API. + VersionInfo string `json:"versionInfo,omitempty"` + + // ForceSendFields is a list of field names (e.g. "ClientStatus") to + // unconditionally include in API requests. By default, fields with + // empty or default values are omitted from API requests. However, any + // non-pointer, non-interface field appearing in ForceSendFields will be + // sent to the server regardless of whether the field is empty or not. + // This may be used to include empty fields in Patch requests. + ForceSendFields []string `json:"-"` + + // NullFields is a list of field names (e.g. "ClientStatus") to include + // in API requests with the JSON null value. By default, fields with + // empty values are omitted from API requests. However, any field with + // an empty value appearing in NullFields will be sent to the server as + // null. It is an error if a field in this list has a non-empty value. + // This may be used to include null fields in Patch requests. + NullFields []string `json:"-"` +} + +func (s *DynamicCluster) MarshalJSON() ([]byte, error) { + type NoMethod DynamicCluster + raw := NoMethod(*s) + return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) +} + +// DynamicEndpointConfig: [#next-free-field: 6] +type DynamicEndpointConfig struct { + // ClientStatus: The client status of this resource. + // [#not-implemented-hide:] + // + // Possible values: + // "UNKNOWN" - Resource status is not available/unknown. + // "REQUESTED" - Client requested this resource but hasn't received + // any update from management server. The client will not fail requests, + // but will queue them until update arrives or the client times out + // waiting for the resource. + // "DOES_NOT_EXIST" - This resource has been requested by the client + // but has either not been delivered by the server or was previously + // delivered by the server and then subsequently removed from resources + // provided by the server. For more information, please refer to the + // :ref:"Knowing When a Requested Resource Does Not Exist" ` section. + // "ACKED" - Client received this resource and replied with ACK. + // "NACKED" - Client received this resource and replied with NACK. + ClientStatus string `json:"clientStatus,omitempty"` + + // EndpointConfig: The endpoint config. + EndpointConfig googleapi.RawMessage `json:"endpointConfig,omitempty"` + + // ErrorState: Set if the last update failed, cleared after the next + // successful update. The ``error_state`` field contains the rejected + // version of this particular resource along with the reason and + // timestamp. For successfully updated or acknowledged resource, this + // field should be empty. [#not-implemented-hide:] + ErrorState *UpdateFailureState `json:"errorState,omitempty"` + + // LastUpdated: [#not-implemented-hide:] The timestamp when the Endpoint + // was last updated. + LastUpdated string `json:"lastUpdated,omitempty"` + + // VersionInfo: [#not-implemented-hide:] This is the per-resource + // version information. This version is currently taken from the + // :ref:`version_info ` field at the time that the endpoint + // configuration was loaded. + VersionInfo string `json:"versionInfo,omitempty"` + + // ForceSendFields is a list of field names (e.g. "ClientStatus") to + // unconditionally include in API requests. By default, fields with + // empty or default values are omitted from API requests. However, any + // non-pointer, non-interface field appearing in ForceSendFields will be + // sent to the server regardless of whether the field is empty or not. + // This may be used to include empty fields in Patch requests. + ForceSendFields []string `json:"-"` + + // NullFields is a list of field names (e.g. "ClientStatus") to include + // in API requests with the JSON null value. By default, fields with + // empty values are omitted from API requests. However, any field with + // an empty value appearing in NullFields will be sent to the server as + // null. It is an error if a field in this list has a non-empty value. + // This may be used to include null fields in Patch requests. + NullFields []string `json:"-"` +} + +func (s *DynamicEndpointConfig) MarshalJSON() ([]byte, error) { + type NoMethod DynamicEndpointConfig + raw := NoMethod(*s) + return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) +} + +// DynamicListener: Describes a dynamically loaded listener via the LDS +// API. [#next-free-field: 7] +type DynamicListener struct { + // ActiveState: The listener state for any active listener by this name. + // These are listeners that are available to service data plane traffic. + ActiveState *DynamicListenerState `json:"activeState,omitempty"` + + // ClientStatus: The client status of this resource. + // [#not-implemented-hide:] + // + // Possible values: + // "UNKNOWN" - Resource status is not available/unknown. + // "REQUESTED" - Client requested this resource but hasn't received + // any update from management server. The client will not fail requests, + // but will queue them until update arrives or the client times out + // waiting for the resource. + // "DOES_NOT_EXIST" - This resource has been requested by the client + // but has either not been delivered by the server or was previously + // delivered by the server and then subsequently removed from resources + // provided by the server. For more information, please refer to the + // :ref:"Knowing When a Requested Resource Does Not Exist" ` section. + // "ACKED" - Client received this resource and replied with ACK. + // "NACKED" - Client received this resource and replied with NACK. + ClientStatus string `json:"clientStatus,omitempty"` + + // DrainingState: The listener state for any draining listener by this + // name. These are listeners that are currently undergoing draining in + // preparation to stop servicing data plane traffic. Note that if + // attempting to recreate an Envoy configuration from a configuration + // dump, the draining listeners should generally be discarded. + DrainingState *DynamicListenerState `json:"drainingState,omitempty"` + + // ErrorState: Set if the last update failed, cleared after the next + // successful update. The ``error_state`` field contains the rejected + // version of this particular resource along with the reason and + // timestamp. For successfully updated or acknowledged resource, this + // field should be empty. + ErrorState *UpdateFailureState `json:"errorState,omitempty"` + + // Name: The name or unique id of this listener, pulled from the + // DynamicListenerState config. + Name string `json:"name,omitempty"` + + // WarmingState: The listener state for any warming listener by this + // name. These are listeners that are currently undergoing warming in + // preparation to service data plane traffic. Note that if attempting to + // recreate an Envoy configuration from a configuration dump, the + // warming listeners should generally be discarded. + WarmingState *DynamicListenerState `json:"warmingState,omitempty"` + + // ForceSendFields is a list of field names (e.g. "ActiveState") to + // unconditionally include in API requests. By default, fields with + // empty or default values are omitted from API requests. However, any + // non-pointer, non-interface field appearing in ForceSendFields will be + // sent to the server regardless of whether the field is empty or not. + // This may be used to include empty fields in Patch requests. + ForceSendFields []string `json:"-"` + + // NullFields is a list of field names (e.g. "ActiveState") to include + // in API requests with the JSON null value. By default, fields with + // empty values are omitted from API requests. However, any field with + // an empty value appearing in NullFields will be sent to the server as + // null. It is an error if a field in this list has a non-empty value. + // This may be used to include null fields in Patch requests. + NullFields []string `json:"-"` +} + +func (s *DynamicListener) MarshalJSON() ([]byte, error) { + type NoMethod DynamicListener + raw := NoMethod(*s) + return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) +} + +type DynamicListenerState struct { + // LastUpdated: The timestamp when the Listener was last successfully + // updated. + LastUpdated string `json:"lastUpdated,omitempty"` + + // Listener: The listener config. + Listener googleapi.RawMessage `json:"listener,omitempty"` + + // VersionInfo: This is the per-resource version information. This + // version is currently taken from the :ref:`version_info ` field at the + // time that the listener was loaded. In the future, discrete + // per-listener versions may be supported by the API. + VersionInfo string `json:"versionInfo,omitempty"` + + // ForceSendFields is a list of field names (e.g. "LastUpdated") to + // unconditionally include in API requests. By default, fields with + // empty or default values are omitted from API requests. However, any + // non-pointer, non-interface field appearing in ForceSendFields will be + // sent to the server regardless of whether the field is empty or not. + // This may be used to include empty fields in Patch requests. + ForceSendFields []string `json:"-"` + + // NullFields is a list of field names (e.g. "LastUpdated") to include + // in API requests with the JSON null value. By default, fields with + // empty values are omitted from API requests. However, any field with + // an empty value appearing in NullFields will be sent to the server as + // null. It is an error if a field in this list has a non-empty value. + // This may be used to include null fields in Patch requests. + NullFields []string `json:"-"` +} + +func (s *DynamicListenerState) MarshalJSON() ([]byte, error) { + type NoMethod DynamicListenerState + raw := NoMethod(*s) + return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) +} + +// DynamicRouteConfig: [#next-free-field: 6] +type DynamicRouteConfig struct { + // ClientStatus: The client status of this resource. + // [#not-implemented-hide:] + // + // Possible values: + // "UNKNOWN" - Resource status is not available/unknown. + // "REQUESTED" - Client requested this resource but hasn't received + // any update from management server. The client will not fail requests, + // but will queue them until update arrives or the client times out + // waiting for the resource. + // "DOES_NOT_EXIST" - This resource has been requested by the client + // but has either not been delivered by the server or was previously + // delivered by the server and then subsequently removed from resources + // provided by the server. For more information, please refer to the + // :ref:"Knowing When a Requested Resource Does Not Exist" ` section. + // "ACKED" - Client received this resource and replied with ACK. + // "NACKED" - Client received this resource and replied with NACK. + ClientStatus string `json:"clientStatus,omitempty"` + + // ErrorState: Set if the last update failed, cleared after the next + // successful update. The ``error_state`` field contains the rejected + // version of this particular resource along with the reason and + // timestamp. For successfully updated or acknowledged resource, this + // field should be empty. [#not-implemented-hide:] + ErrorState *UpdateFailureState `json:"errorState,omitempty"` + + // LastUpdated: The timestamp when the Route was last updated. + LastUpdated string `json:"lastUpdated,omitempty"` + + // RouteConfig: The route config. + RouteConfig googleapi.RawMessage `json:"routeConfig,omitempty"` + + // VersionInfo: This is the per-resource version information. This + // version is currently taken from the :ref:`version_info ` field at the + // time that the route configuration was loaded. + VersionInfo string `json:"versionInfo,omitempty"` + + // ForceSendFields is a list of field names (e.g. "ClientStatus") to + // unconditionally include in API requests. By default, fields with + // empty or default values are omitted from API requests. However, any + // non-pointer, non-interface field appearing in ForceSendFields will be + // sent to the server regardless of whether the field is empty or not. + // This may be used to include empty fields in Patch requests. + ForceSendFields []string `json:"-"` + + // NullFields is a list of field names (e.g. "ClientStatus") to include + // in API requests with the JSON null value. By default, fields with + // empty values are omitted from API requests. However, any field with + // an empty value appearing in NullFields will be sent to the server as + // null. It is an error if a field in this list has a non-empty value. + // This may be used to include null fields in Patch requests. + NullFields []string `json:"-"` +} + +func (s *DynamicRouteConfig) MarshalJSON() ([]byte, error) { + type NoMethod DynamicRouteConfig + raw := NoMethod(*s) + return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) +} + +// DynamicScopedRouteConfigs: [#next-free-field: 7] +type DynamicScopedRouteConfigs struct { + // ClientStatus: The client status of this resource. + // [#not-implemented-hide:] + // + // Possible values: + // "UNKNOWN" - Resource status is not available/unknown. + // "REQUESTED" - Client requested this resource but hasn't received + // any update from management server. The client will not fail requests, + // but will queue them until update arrives or the client times out + // waiting for the resource. + // "DOES_NOT_EXIST" - This resource has been requested by the client + // but has either not been delivered by the server or was previously + // delivered by the server and then subsequently removed from resources + // provided by the server. For more information, please refer to the + // :ref:"Knowing When a Requested Resource Does Not Exist" ` section. + // "ACKED" - Client received this resource and replied with ACK. + // "NACKED" - Client received this resource and replied with NACK. + ClientStatus string `json:"clientStatus,omitempty"` + + // ErrorState: Set if the last update failed, cleared after the next + // successful update. The ``error_state`` field contains the rejected + // version of this particular resource along with the reason and + // timestamp. For successfully updated or acknowledged resource, this + // field should be empty. [#not-implemented-hide:] + ErrorState *UpdateFailureState `json:"errorState,omitempty"` + + // LastUpdated: The timestamp when the scoped route config set was last + // updated. + LastUpdated string `json:"lastUpdated,omitempty"` + + // Name: The name assigned to the scoped route configurations. + Name string `json:"name,omitempty"` + + // ScopedRouteConfigs: The scoped route configurations. + ScopedRouteConfigs []googleapi.RawMessage `json:"scopedRouteConfigs,omitempty"` + + // VersionInfo: This is the per-resource version information. This + // version is currently taken from the :ref:`version_info ` field at the + // time that the scoped routes configuration was loaded. + VersionInfo string `json:"versionInfo,omitempty"` + + // ForceSendFields is a list of field names (e.g. "ClientStatus") to + // unconditionally include in API requests. By default, fields with + // empty or default values are omitted from API requests. However, any + // non-pointer, non-interface field appearing in ForceSendFields will be + // sent to the server regardless of whether the field is empty or not. + // This may be used to include empty fields in Patch requests. + ForceSendFields []string `json:"-"` + + // NullFields is a list of field names (e.g. "ClientStatus") to include + // in API requests with the JSON null value. By default, fields with + // empty values are omitted from API requests. However, any field with + // an empty value appearing in NullFields will be sent to the server as + // null. It is an error if a field in this list has a non-empty value. + // This may be used to include null fields in Patch requests. + NullFields []string `json:"-"` +} + +func (s *DynamicScopedRouteConfigs) MarshalJSON() ([]byte, error) { + type NoMethod DynamicScopedRouteConfigs + raw := NoMethod(*s) + return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) +} + +// EndpointsConfigDump: Envoy's admin fill this message with all +// currently known endpoints. Endpoint configuration information can be +// used to recreate an Envoy configuration by populating all endpoints +// as static endpoints or by returning them in an EDS response. +type EndpointsConfigDump struct { + // DynamicEndpointConfigs: The dynamically loaded endpoint configs. + DynamicEndpointConfigs []*DynamicEndpointConfig `json:"dynamicEndpointConfigs,omitempty"` + + // StaticEndpointConfigs: The statically loaded endpoint configs. + StaticEndpointConfigs []*StaticEndpointConfig `json:"staticEndpointConfigs,omitempty"` + + // ForceSendFields is a list of field names (e.g. + // "DynamicEndpointConfigs") to unconditionally include in API requests. + // By default, fields with empty or default values are omitted from API + // requests. However, any non-pointer, non-interface field appearing in + // ForceSendFields will be sent to the server regardless of whether the + // field is empty or not. This may be used to include empty fields in + // Patch requests. + ForceSendFields []string `json:"-"` + + // NullFields is a list of field names (e.g. "DynamicEndpointConfigs") + // to include in API requests with the JSON null value. By default, + // fields with empty values are omitted from API requests. However, any + // field with an empty value appearing in NullFields will be sent to the + // server as null. It is an error if a field in this list has a + // non-empty value. This may be used to include null fields in Patch + // requests. + NullFields []string `json:"-"` +} + +func (s *EndpointsConfigDump) MarshalJSON() ([]byte, error) { + type NoMethod EndpointsConfigDump + raw := NoMethod(*s) + return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) +} + +// EnvoyInternalAddress: The address represents an envoy internal +// listener. [#comment: +type EnvoyInternalAddress struct { + // EndpointId: Specifies an endpoint identifier to distinguish between + // multiple endpoints for the same internal listener in a single + // upstream pool. Only used in the upstream addresses for tracking + // changes to individual endpoints. This, for example, may be set to the + // final destination IP for the target internal listener. + EndpointId string `json:"endpointId,omitempty"` + + // ServerListenerName: Specifies the :ref:`name ` of the internal + // listener. + ServerListenerName string `json:"serverListenerName,omitempty"` + + // ForceSendFields is a list of field names (e.g. "EndpointId") to + // unconditionally include in API requests. By default, fields with + // empty or default values are omitted from API requests. However, any + // non-pointer, non-interface field appearing in ForceSendFields will be + // sent to the server regardless of whether the field is empty or not. + // This may be used to include empty fields in Patch requests. + ForceSendFields []string `json:"-"` + + // NullFields is a list of field names (e.g. "EndpointId") to include in + // API requests with the JSON null value. By default, fields with empty + // values are omitted from API requests. However, any field with an + // empty value appearing in NullFields will be sent to the server as + // null. It is an error if a field in this list has a non-empty value. + // This may be used to include null fields in Patch requests. + NullFields []string `json:"-"` +} + +func (s *EnvoyInternalAddress) MarshalJSON() ([]byte, error) { + type NoMethod EnvoyInternalAddress + raw := NoMethod(*s) + return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) +} + +// Extension: Version and identification for an Envoy extension. +// [#next-free-field: 7] +type Extension struct { + // Category: Category of the extension. Extension category names use + // reverse DNS notation. For instance "envoy.filters.listener" for + // Envoy's built-in listener filters or "com.acme.filters.http" for HTTP + // filters from acme.com vendor. [#comment: + Category string `json:"category,omitempty"` + + // Disabled: Indicates that the extension is present but was disabled + // via dynamic configuration. + Disabled bool `json:"disabled,omitempty"` + + // Name: This is the name of the Envoy filter as specified in the Envoy + // configuration, e.g. envoy.filters.http.router, com.acme.widget. + Name string `json:"name,omitempty"` + + // TypeDescriptor: [#not-implemented-hide:] Type descriptor of extension + // configuration proto. [#comment: + TypeDescriptor string `json:"typeDescriptor,omitempty"` + + // TypeUrls: Type URLs of extension configuration protos. + TypeUrls []string `json:"typeUrls,omitempty"` + + // Version: The version is a property of the extension and maintained + // independently of other extensions and the Envoy API. This field is + // not set when extension did not provide version information. + Version *BuildVersion `json:"version,omitempty"` + + // ForceSendFields is a list of field names (e.g. "Category") to + // unconditionally include in API requests. By default, fields with + // empty or default values are omitted from API requests. However, any + // non-pointer, non-interface field appearing in ForceSendFields will be + // sent to the server regardless of whether the field is empty or not. + // This may be used to include empty fields in Patch requests. + ForceSendFields []string `json:"-"` + + // NullFields is a list of field names (e.g. "Category") to include in + // API requests with the JSON null value. By default, fields with empty + // values are omitted from API requests. However, any field with an + // empty value appearing in NullFields will be sent to the server as + // null. It is an error if a field in this list has a non-empty value. + // This may be used to include null fields in Patch requests. + NullFields []string `json:"-"` +} + +func (s *Extension) MarshalJSON() ([]byte, error) { + type NoMethod Extension + raw := NoMethod(*s) + return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) +} + +// GenericXdsConfig: GenericXdsConfig is used to specify the config +// status and the dump of any xDS resource identified by their type URL. +// It is the generalized version of the now deprecated +// ListenersConfigDump, ClustersConfigDump etc [#next-free-field: 10] +type GenericXdsConfig struct { + // ClientStatus: Per xDS resource status from the view of a xDS client + // + // Possible values: + // "UNKNOWN" - Resource status is not available/unknown. + // "REQUESTED" - Client requested this resource but hasn't received + // any update from management server. The client will not fail requests, + // but will queue them until update arrives or the client times out + // waiting for the resource. + // "DOES_NOT_EXIST" - This resource has been requested by the client + // but has either not been delivered by the server or was previously + // delivered by the server and then subsequently removed from resources + // provided by the server. For more information, please refer to the + // :ref:"Knowing When a Requested Resource Does Not Exist" ` section. + // "ACKED" - Client received this resource and replied with ACK. + // "NACKED" - Client received this resource and replied with NACK. + ClientStatus string `json:"clientStatus,omitempty"` + + // ConfigStatus: Per xDS resource config status. It is generated by + // management servers. It will not be present if the CSDS server is an + // xDS client. + // + // Possible values: + // "UNKNOWN" - Status info is not available/unknown. + // "SYNCED" - Management server has sent the config to client and + // received ACK. + // "NOT_SENT" - Config is not sent. + // "STALE" - Management server has sent the config to client but + // hasn’t received ACK/NACK. + // "ERROR" - Management server has sent the config to client but + // received NACK. The attached config dump will be the latest config + // (the rejected one), since it is the persisted version in the + // management server. + ConfigStatus string `json:"configStatus,omitempty"` + + // ErrorState: Set if the last update failed, cleared after the next + // successful update. The *error_state* field contains the rejected + // version of this particular resource along with the reason and + // timestamp. For successfully updated or acknowledged resource, this + // field should be empty. [#not-implemented-hide:] + ErrorState *UpdateFailureState `json:"errorState,omitempty"` + + // IsStaticResource: Is static resource is true if it is specified in + // the config supplied through the file at the startup. + IsStaticResource bool `json:"isStaticResource,omitempty"` + + // LastUpdated: Timestamp when the xDS resource was last updated + LastUpdated string `json:"lastUpdated,omitempty"` + + // Name: Name of the xDS resource + Name string `json:"name,omitempty"` + + // TypeUrl: Type_url represents the fully qualified name of xDS resource + // type like envoy.v3.Cluster, envoy.v3.ClusterLoadAssignment etc. + TypeUrl string `json:"typeUrl,omitempty"` + + // VersionInfo: This is the :ref:`version_info ` in the last processed + // xDS discovery response. If there are only static bootstrap listeners, + // this field will be "" + VersionInfo string `json:"versionInfo,omitempty"` + + // XdsConfig: The xDS resource config. Actual content depends on the + // type + XdsConfig googleapi.RawMessage `json:"xdsConfig,omitempty"` + + // ForceSendFields is a list of field names (e.g. "ClientStatus") to + // unconditionally include in API requests. By default, fields with + // empty or default values are omitted from API requests. However, any + // non-pointer, non-interface field appearing in ForceSendFields will be + // sent to the server regardless of whether the field is empty or not. + // This may be used to include empty fields in Patch requests. + ForceSendFields []string `json:"-"` + + // NullFields is a list of field names (e.g. "ClientStatus") to include + // in API requests with the JSON null value. By default, fields with + // empty values are omitted from API requests. However, any field with + // an empty value appearing in NullFields will be sent to the server as + // null. It is an error if a field in this list has a non-empty value. + // This may be used to include null fields in Patch requests. + NullFields []string `json:"-"` +} + +func (s *GenericXdsConfig) MarshalJSON() ([]byte, error) { + type NoMethod GenericXdsConfig + raw := NoMethod(*s) + return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) +} + +// GoogleRE2: Google's `RE2 `_ regex engine. The regex string must +// adhere to the documented `syntax `_. The engine is designed to +// complete execution in linear time as well as limit the amount of +// memory used. Envoy supports program size checking via runtime. The +// runtime keys “re2.max_program_size.error_level“ and +// “re2.max_program_size.warn_level“ can be set to integers as the +// maximum program size or complexity that a compiled regex can have +// before an exception is thrown or a warning is logged, respectively. +// “re2.max_program_size.error_level“ defaults to 100, and +// “re2.max_program_size.warn_level“ has no default if unset (will not +// check/log a warning). Envoy emits two stats for tracking the program +// size of regexes: the histogram “re2.program_size“, which records +// the program size, and the counter “re2.exceeded_warn_level“, which +// is incremented each time the program size exceeds the warn level +// threshold. +type GoogleRE2 struct { + // MaxProgramSize: This field controls the RE2 "program size" which is a + // rough estimate of how complex a compiled regex is to evaluate. A + // regex that has a program size greater than the configured value will + // fail to compile. In this case, the configured max program size can be + // increased or the regex can be simplified. If not specified, the + // default is 100. This field is deprecated; regexp validation should be + // performed on the management server instead of being done by each + // individual client. .. note:: Although this field is deprecated, the + // program size will still be checked against the global + // ``re2.max_program_size.error_level`` runtime value. + MaxProgramSize int64 `json:"maxProgramSize,omitempty"` + + // ForceSendFields is a list of field names (e.g. "MaxProgramSize") to + // unconditionally include in API requests. By default, fields with + // empty or default values are omitted from API requests. However, any + // non-pointer, non-interface field appearing in ForceSendFields will be + // sent to the server regardless of whether the field is empty or not. + // This may be used to include empty fields in Patch requests. + ForceSendFields []string `json:"-"` + + // NullFields is a list of field names (e.g. "MaxProgramSize") to + // include in API requests with the JSON null value. By default, fields + // with empty values are omitted from API requests. However, any field + // with an empty value appearing in NullFields will be sent to the + // server as null. It is an error if a field in this list has a + // non-empty value. This may be used to include null fields in Patch + // requests. + NullFields []string `json:"-"` +} + +func (s *GoogleRE2) MarshalJSON() ([]byte, error) { + type NoMethod GoogleRE2 + raw := NoMethod(*s) + return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) +} + +type InlineScopedRouteConfigs struct { + // LastUpdated: The timestamp when the scoped route config set was last + // updated. + LastUpdated string `json:"lastUpdated,omitempty"` + + // Name: The name assigned to the scoped route configurations. + Name string `json:"name,omitempty"` + + // ScopedRouteConfigs: The scoped route configurations. + ScopedRouteConfigs []googleapi.RawMessage `json:"scopedRouteConfigs,omitempty"` + + // ForceSendFields is a list of field names (e.g. "LastUpdated") to + // unconditionally include in API requests. By default, fields with + // empty or default values are omitted from API requests. However, any + // non-pointer, non-interface field appearing in ForceSendFields will be + // sent to the server regardless of whether the field is empty or not. + // This may be used to include empty fields in Patch requests. + ForceSendFields []string `json:"-"` + + // NullFields is a list of field names (e.g. "LastUpdated") to include + // in API requests with the JSON null value. By default, fields with + // empty values are omitted from API requests. However, any field with + // an empty value appearing in NullFields will be sent to the server as + // null. It is an error if a field in this list has a non-empty value. + // This may be used to include null fields in Patch requests. + NullFields []string `json:"-"` +} + +func (s *InlineScopedRouteConfigs) MarshalJSON() ([]byte, error) { + type NoMethod InlineScopedRouteConfigs + raw := NoMethod(*s) + return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) +} + +// ListMatcher: Specifies the way to match a list value. +type ListMatcher struct { + // OneOf: If specified, at least one of the values in the list must + // match the value specified. + OneOf *ValueMatcher `json:"oneOf,omitempty"` + + // ForceSendFields is a list of field names (e.g. "OneOf") to + // unconditionally include in API requests. By default, fields with + // empty or default values are omitted from API requests. However, any + // non-pointer, non-interface field appearing in ForceSendFields will be + // sent to the server regardless of whether the field is empty or not. + // This may be used to include empty fields in Patch requests. + ForceSendFields []string `json:"-"` + + // NullFields is a list of field names (e.g. "OneOf") to include in API + // requests with the JSON null value. By default, fields with empty + // values are omitted from API requests. However, any field with an + // empty value appearing in NullFields will be sent to the server as + // null. It is an error if a field in this list has a non-empty value. + // This may be used to include null fields in Patch requests. + NullFields []string `json:"-"` +} + +func (s *ListMatcher) MarshalJSON() ([]byte, error) { + type NoMethod ListMatcher + raw := NoMethod(*s) + return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) +} + +// ListenersConfigDump: Envoy's listener manager fills this message with +// all currently known listeners. Listener configuration information can +// be used to recreate an Envoy configuration by populating all +// listeners as static listeners or by returning them in a LDS response. +type ListenersConfigDump struct { + // DynamicListeners: State for any warming, active, or draining + // listeners. + DynamicListeners []*DynamicListener `json:"dynamicListeners,omitempty"` + + // StaticListeners: The statically loaded listener configs. + StaticListeners []*StaticListener `json:"staticListeners,omitempty"` + + // VersionInfo: This is the :ref:`version_info ` in the last processed + // LDS discovery response. If there are only static bootstrap listeners, + // this field will be "". + VersionInfo string `json:"versionInfo,omitempty"` + + // ForceSendFields is a list of field names (e.g. "DynamicListeners") to + // unconditionally include in API requests. By default, fields with + // empty or default values are omitted from API requests. However, any + // non-pointer, non-interface field appearing in ForceSendFields will be + // sent to the server regardless of whether the field is empty or not. + // This may be used to include empty fields in Patch requests. + ForceSendFields []string `json:"-"` + + // NullFields is a list of field names (e.g. "DynamicListeners") to + // include in API requests with the JSON null value. By default, fields + // with empty values are omitted from API requests. However, any field + // with an empty value appearing in NullFields will be sent to the + // server as null. It is an error if a field in this list has a + // non-empty value. This may be used to include null fields in Patch + // requests. + NullFields []string `json:"-"` +} + +func (s *ListenersConfigDump) MarshalJSON() ([]byte, error) { + type NoMethod ListenersConfigDump + raw := NoMethod(*s) + return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) +} + +// Locality: Identifies location of where either Envoy runs or where +// upstream hosts run. +type Locality struct { + // Region: Region this :ref:`zone ` belongs to. + Region string `json:"region,omitempty"` + + // SubZone: When used for locality of upstream hosts, this field further + // splits zone into smaller chunks of sub-zones so they can be load + // balanced independently. + SubZone string `json:"subZone,omitempty"` + + // Zone: Defines the local service zone where Envoy is running. Though + // optional, it should be set if discovery service routing is used and + // the discovery service exposes :ref:`zone data `, either in this + // message or via :option:`--service-zone`. The meaning of zone is + // context dependent, e.g. `Availability Zone (AZ) `_ on AWS, `Zone `_ + // on GCP, etc. + Zone string `json:"zone,omitempty"` + + // ForceSendFields is a list of field names (e.g. "Region") to + // unconditionally include in API requests. By default, fields with + // empty or default values are omitted from API requests. However, any + // non-pointer, non-interface field appearing in ForceSendFields will be + // sent to the server regardless of whether the field is empty or not. + // This may be used to include empty fields in Patch requests. + ForceSendFields []string `json:"-"` + + // NullFields is a list of field names (e.g. "Region") to include in API + // requests with the JSON null value. By default, fields with empty + // values are omitted from API requests. However, any field with an + // empty value appearing in NullFields will be sent to the server as + // null. It is an error if a field in this list has a non-empty value. + // This may be used to include null fields in Patch requests. + NullFields []string `json:"-"` +} + +func (s *Locality) MarshalJSON() ([]byte, error) { + type NoMethod Locality + raw := NoMethod(*s) + return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) +} + +// Node: Identifies a specific Envoy instance. The node identifier is +// presented to the management server, which may use this identifier to +// distinguish per Envoy configuration for serving. [#next-free-field: +// 13] +type Node struct { + // ClientFeatures: Client feature support list. These are well known + // features described in the Envoy API repository for a given major + // version of an API. Client features use reverse DNS naming scheme, for + // example ``com.acme.feature``. See :ref:`the list of features ` that + // xDS client may support. + ClientFeatures []string `json:"clientFeatures,omitempty"` + + // Cluster: Defines the local service cluster name where Envoy is + // running. Though optional, it should be set if any of the following + // features are used: :ref:`statsd `, :ref:`health check cluster + // verification `, :ref:`runtime override directory `, :ref:`user agent + // addition `, :ref:`HTTP global rate limiting `, :ref:`CDS `, and + // :ref:`HTTP tracing `, either in this message or via + // :option:`--service-cluster`. + Cluster string `json:"cluster,omitempty"` + + // DynamicParameters: Map from xDS resource type URL to dynamic context + // parameters. These may vary at runtime (unlike other fields in this + // message). For example, the xDS client may have a shard identifier + // that changes during the lifetime of the xDS client. In Envoy, this + // would be achieved by updating the dynamic context on the + // Server::Instance's LocalInfo context provider. The shard ID dynamic + // parameter then appears in this field during future discovery + // requests. + DynamicParameters map[string]ContextParams `json:"dynamicParameters,omitempty"` + + // Extensions: List of extensions and their versions supported by the + // node. + Extensions []*Extension `json:"extensions,omitempty"` + + // Id: An opaque node identifier for the Envoy node. This also provides + // the local service node name. It should be set if any of the following + // features are used: :ref:`statsd `, :ref:`CDS `, and :ref:`HTTP + // tracing `, either in this message or via :option:`--service-node`. + Id string `json:"id,omitempty"` + + // ListeningAddresses: Known listening ports on the node as a generic + // hint to the management server for filtering :ref:`listeners ` to be + // returned. For example, if there is a listener bound to port 80, the + // list can optionally contain the SocketAddress ``(0.0.0.0,80)``. The + // field is optional and just a hint. + ListeningAddresses []*Address `json:"listeningAddresses,omitempty"` + + // Locality: Locality specifying where the Envoy instance is running. + Locality *Locality `json:"locality,omitempty"` + + // Metadata: Opaque metadata extending the node identifier. Envoy will + // pass this directly to the management server. + Metadata googleapi.RawMessage `json:"metadata,omitempty"` + + // UserAgentBuildVersion: Structured version of the entity requesting + // config. + UserAgentBuildVersion *BuildVersion `json:"userAgentBuildVersion,omitempty"` + + // UserAgentName: Free-form string that identifies the entity requesting + // config. E.g. "envoy" or "grpc" + UserAgentName string `json:"userAgentName,omitempty"` + + // UserAgentVersion: Free-form string that identifies the version of the + // entity requesting config. E.g. "1.12.2" or "abcd1234", or + // "SpecialEnvoyBuild" + UserAgentVersion string `json:"userAgentVersion,omitempty"` + + // ForceSendFields is a list of field names (e.g. "ClientFeatures") to + // unconditionally include in API requests. By default, fields with + // empty or default values are omitted from API requests. However, any + // non-pointer, non-interface field appearing in ForceSendFields will be + // sent to the server regardless of whether the field is empty or not. + // This may be used to include empty fields in Patch requests. + ForceSendFields []string `json:"-"` + + // NullFields is a list of field names (e.g. "ClientFeatures") to + // include in API requests with the JSON null value. By default, fields + // with empty values are omitted from API requests. However, any field + // with an empty value appearing in NullFields will be sent to the + // server as null. It is an error if a field in this list has a + // non-empty value. This may be used to include null fields in Patch + // requests. + NullFields []string `json:"-"` +} + +func (s *Node) MarshalJSON() ([]byte, error) { + type NoMethod Node + raw := NoMethod(*s) + return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) +} + +// NodeMatcher: Specifies the way to match a Node. The match follows AND +// semantics. +type NodeMatcher struct { + // NodeId: Specifies match criteria on the node id. + NodeId *StringMatcher `json:"nodeId,omitempty"` + + // NodeMetadatas: Specifies match criteria on the node metadata. + NodeMetadatas []*StructMatcher `json:"nodeMetadatas,omitempty"` + + // ForceSendFields is a list of field names (e.g. "NodeId") to + // unconditionally include in API requests. By default, fields with + // empty or default values are omitted from API requests. However, any + // non-pointer, non-interface field appearing in ForceSendFields will be + // sent to the server regardless of whether the field is empty or not. + // This may be used to include empty fields in Patch requests. + ForceSendFields []string `json:"-"` + + // NullFields is a list of field names (e.g. "NodeId") to include in API + // requests with the JSON null value. By default, fields with empty + // values are omitted from API requests. However, any field with an + // empty value appearing in NullFields will be sent to the server as + // null. It is an error if a field in this list has a non-empty value. + // This may be used to include null fields in Patch requests. + NullFields []string `json:"-"` +} + +func (s *NodeMatcher) MarshalJSON() ([]byte, error) { + type NoMethod NodeMatcher + raw := NoMethod(*s) + return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) +} + +// NullMatch: NullMatch is an empty message to specify a null value. +type NullMatch struct { +} + +// PathSegment: Specifies the segment in a path to retrieve value from +// Struct. +type PathSegment struct { + // Key: If specified, use the key to retrieve the value in a Struct. + Key string `json:"key,omitempty"` + + // ForceSendFields is a list of field names (e.g. "Key") to + // unconditionally include in API requests. By default, fields with + // empty or default values are omitted from API requests. However, any + // non-pointer, non-interface field appearing in ForceSendFields will be + // sent to the server regardless of whether the field is empty or not. + // This may be used to include empty fields in Patch requests. + ForceSendFields []string `json:"-"` + + // NullFields is a list of field names (e.g. "Key") to include in API + // requests with the JSON null value. By default, fields with empty + // values are omitted from API requests. However, any field with an + // empty value appearing in NullFields will be sent to the server as + // null. It is an error if a field in this list has a non-empty value. + // This may be used to include null fields in Patch requests. + NullFields []string `json:"-"` +} + +func (s *PathSegment) MarshalJSON() ([]byte, error) { + type NoMethod PathSegment + raw := NoMethod(*s) + return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) +} + +// PerXdsConfig: Detailed config (per xDS) with status. +// [#next-free-field: 8] +type PerXdsConfig struct { + // ClientStatus: Client config status is populated by xDS clients. Will + // not be present if the CSDS server is an xDS server. No matter what + // the client config status is, xDS clients should always dump the most + // recent accepted xDS config. .. attention:: This field is deprecated. + // Use :ref:`ClientResourceStatus ` for per-resource config status + // instead. + // + // Possible values: + // "CLIENT_UNKNOWN" - Config status is not available/unknown. + // "CLIENT_REQUESTED" - Client requested the config but hasn't + // received any config from management server yet. + // "CLIENT_ACKED" - Client received the config and replied with ACK. + // "CLIENT_NACKED" - Client received the config and replied with NACK. + // Notably, the attached config dump is not the NACKed version, but the + // most recent accepted one. If no config is accepted yet, the attached + // config dump will be empty. + ClientStatus string `json:"clientStatus,omitempty"` + + ClusterConfig *ClustersConfigDump `json:"clusterConfig,omitempty"` + + EndpointConfig *EndpointsConfigDump `json:"endpointConfig,omitempty"` + + ListenerConfig *ListenersConfigDump `json:"listenerConfig,omitempty"` + + RouteConfig *RoutesConfigDump `json:"routeConfig,omitempty"` + + ScopedRouteConfig *ScopedRoutesConfigDump `json:"scopedRouteConfig,omitempty"` + + // Status: Config status generated by management servers. Will not be + // present if the CSDS server is an xDS client. + // + // Possible values: + // "UNKNOWN" - Status info is not available/unknown. + // "SYNCED" - Management server has sent the config to client and + // received ACK. + // "NOT_SENT" - Config is not sent. + // "STALE" - Management server has sent the config to client but + // hasn’t received ACK/NACK. + // "ERROR" - Management server has sent the config to client but + // received NACK. The attached config dump will be the latest config + // (the rejected one), since it is the persisted version in the + // management server. + Status string `json:"status,omitempty"` + + // ForceSendFields is a list of field names (e.g. "ClientStatus") to + // unconditionally include in API requests. By default, fields with + // empty or default values are omitted from API requests. However, any + // non-pointer, non-interface field appearing in ForceSendFields will be + // sent to the server regardless of whether the field is empty or not. + // This may be used to include empty fields in Patch requests. + ForceSendFields []string `json:"-"` + + // NullFields is a list of field names (e.g. "ClientStatus") to include + // in API requests with the JSON null value. By default, fields with + // empty values are omitted from API requests. However, any field with + // an empty value appearing in NullFields will be sent to the server as + // null. It is an error if a field in this list has a non-empty value. + // This may be used to include null fields in Patch requests. + NullFields []string `json:"-"` +} + +func (s *PerXdsConfig) MarshalJSON() ([]byte, error) { + type NoMethod PerXdsConfig + raw := NoMethod(*s) + return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) +} + +type Pipe struct { + // Mode: The mode for the Pipe. Not applicable for abstract sockets. + Mode int64 `json:"mode,omitempty"` + + // Path: Unix Domain Socket path. On Linux, paths starting with '@' will + // use the abstract namespace. The starting '@' is replaced by a null + // byte by Envoy. Paths starting with '@' will result in an error in + // environments other than Linux. + Path string `json:"path,omitempty"` + + // ForceSendFields is a list of field names (e.g. "Mode") to + // unconditionally include in API requests. By default, fields with + // empty or default values are omitted from API requests. However, any + // non-pointer, non-interface field appearing in ForceSendFields will be + // sent to the server regardless of whether the field is empty or not. + // This may be used to include empty fields in Patch requests. + ForceSendFields []string `json:"-"` + + // NullFields is a list of field names (e.g. "Mode") to include in API + // requests with the JSON null value. By default, fields with empty + // values are omitted from API requests. However, any field with an + // empty value appearing in NullFields will be sent to the server as + // null. It is an error if a field in this list has a non-empty value. + // This may be used to include null fields in Patch requests. + NullFields []string `json:"-"` +} + +func (s *Pipe) MarshalJSON() ([]byte, error) { + type NoMethod Pipe + raw := NoMethod(*s) + return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) +} + +// RegexMatcher: A regex matcher designed for safety when used with +// untrusted input. +type RegexMatcher struct { + // GoogleRe2: Google's RE2 regex engine. + GoogleRe2 *GoogleRE2 `json:"googleRe2,omitempty"` + + // Regex: The regex match string. The string must be supported by the + // configured engine. The regex is matched against the full string, not + // as a partial match. + Regex string `json:"regex,omitempty"` + + // ForceSendFields is a list of field names (e.g. "GoogleRe2") to + // unconditionally include in API requests. By default, fields with + // empty or default values are omitted from API requests. However, any + // non-pointer, non-interface field appearing in ForceSendFields will be + // sent to the server regardless of whether the field is empty or not. + // This may be used to include empty fields in Patch requests. + ForceSendFields []string `json:"-"` + + // NullFields is a list of field names (e.g. "GoogleRe2") to include in + // API requests with the JSON null value. By default, fields with empty + // values are omitted from API requests. However, any field with an + // empty value appearing in NullFields will be sent to the server as + // null. It is an error if a field in this list has a non-empty value. + // This may be used to include null fields in Patch requests. + NullFields []string `json:"-"` +} + +func (s *RegexMatcher) MarshalJSON() ([]byte, error) { + type NoMethod RegexMatcher + raw := NoMethod(*s) + return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) +} + +// RoutesConfigDump: Envoy's RDS implementation fills this message with +// all currently loaded routes, as described by their RouteConfiguration +// objects. Static routes that are either defined in the bootstrap +// configuration or defined inline while configuring listeners are +// separated from those configured dynamically via RDS. Route +// configuration information can be used to recreate an Envoy +// configuration by populating all routes as static routes or by +// returning them in RDS responses. +type RoutesConfigDump struct { + // DynamicRouteConfigs: The dynamically loaded route configs. + DynamicRouteConfigs []*DynamicRouteConfig `json:"dynamicRouteConfigs,omitempty"` + + // StaticRouteConfigs: The statically loaded route configs. + StaticRouteConfigs []*StaticRouteConfig `json:"staticRouteConfigs,omitempty"` + + // ForceSendFields is a list of field names (e.g. "DynamicRouteConfigs") + // to unconditionally include in API requests. By default, fields with + // empty or default values are omitted from API requests. However, any + // non-pointer, non-interface field appearing in ForceSendFields will be + // sent to the server regardless of whether the field is empty or not. + // This may be used to include empty fields in Patch requests. + ForceSendFields []string `json:"-"` + + // NullFields is a list of field names (e.g. "DynamicRouteConfigs") to + // include in API requests with the JSON null value. By default, fields + // with empty values are omitted from API requests. However, any field + // with an empty value appearing in NullFields will be sent to the + // server as null. It is an error if a field in this list has a + // non-empty value. This may be used to include null fields in Patch + // requests. + NullFields []string `json:"-"` +} + +func (s *RoutesConfigDump) MarshalJSON() ([]byte, error) { + type NoMethod RoutesConfigDump + raw := NoMethod(*s) + return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) +} + +// ScopedRoutesConfigDump: Envoy's scoped RDS implementation fills this +// message with all currently loaded route configuration scopes (defined +// via ScopedRouteConfigurationsSet protos). This message lists both the +// scopes defined inline with the higher order object (i.e., the +// HttpConnectionManager) and the dynamically obtained scopes via the +// SRDS API. +type ScopedRoutesConfigDump struct { + // DynamicScopedRouteConfigs: The dynamically loaded scoped route + // configs. + DynamicScopedRouteConfigs []*DynamicScopedRouteConfigs `json:"dynamicScopedRouteConfigs,omitempty"` + + // InlineScopedRouteConfigs: The statically loaded scoped route configs. + InlineScopedRouteConfigs []*InlineScopedRouteConfigs `json:"inlineScopedRouteConfigs,omitempty"` + + // ForceSendFields is a list of field names (e.g. + // "DynamicScopedRouteConfigs") to unconditionally include in API + // requests. By default, fields with empty or default values are omitted + // from API requests. However, any non-pointer, non-interface field + // appearing in ForceSendFields will be sent to the server regardless of + // whether the field is empty or not. This may be used to include empty + // fields in Patch requests. + ForceSendFields []string `json:"-"` + + // NullFields is a list of field names (e.g. + // "DynamicScopedRouteConfigs") to include in API requests with the JSON + // null value. By default, fields with empty values are omitted from API + // requests. However, any field with an empty value appearing in + // NullFields will be sent to the server as null. It is an error if a + // field in this list has a non-empty value. This may be used to include + // null fields in Patch requests. + NullFields []string `json:"-"` +} + +func (s *ScopedRoutesConfigDump) MarshalJSON() ([]byte, error) { + type NoMethod ScopedRoutesConfigDump + raw := NoMethod(*s) + return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) +} + +// SemanticVersion: Envoy uses SemVer (https://semver.org/). Major/minor +// versions indicate expected behaviors and APIs, the patch version +// field is used only for security fixes and can be generally ignored. +type SemanticVersion struct { + MajorNumber int64 `json:"majorNumber,omitempty"` + + MinorNumber int64 `json:"minorNumber,omitempty"` + + Patch int64 `json:"patch,omitempty"` + + // ForceSendFields is a list of field names (e.g. "MajorNumber") to + // unconditionally include in API requests. By default, fields with + // empty or default values are omitted from API requests. However, any + // non-pointer, non-interface field appearing in ForceSendFields will be + // sent to the server regardless of whether the field is empty or not. + // This may be used to include empty fields in Patch requests. + ForceSendFields []string `json:"-"` + + // NullFields is a list of field names (e.g. "MajorNumber") to include + // in API requests with the JSON null value. By default, fields with + // empty values are omitted from API requests. However, any field with + // an empty value appearing in NullFields will be sent to the server as + // null. It is an error if a field in this list has a non-empty value. + // This may be used to include null fields in Patch requests. + NullFields []string `json:"-"` +} + +func (s *SemanticVersion) MarshalJSON() ([]byte, error) { + type NoMethod SemanticVersion + raw := NoMethod(*s) + return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) +} + +// SocketAddress: [#next-free-field: 7] +type SocketAddress struct { + // Address: The address for this socket. :ref:`Listeners ` will bind to + // the address. An empty address is not allowed. Specify ``0.0.0.0`` or + // ``::`` to bind to any address. [#comment:TODO(zuercher) reinstate + // when implemented: It is possible to distinguish a Listener address + // via the prefix/suffix matching in :ref:`FilterChainMatch `.] When + // used within an upstream :ref:`BindConfig `, the address controls the + // source address of outbound connections. For :ref:`clusters `, the + // cluster type determines whether the address must be an IP (``STATIC`` + // or ``EDS`` clusters) or a hostname resolved by DNS (``STRICT_DNS`` or + // ``LOGICAL_DNS`` clusters). Address resolution can be customized via + // :ref:`resolver_name `. + Address string `json:"address,omitempty"` + + // Ipv4Compat: When binding to an IPv6 address above, this enables `IPv4 + // compatibility `_. Binding to ``::`` will allow both IPv4 and IPv6 + // connections, with peer IPv4 addresses mapped into IPv6 space as + // ``::FFFF:``. + Ipv4Compat bool `json:"ipv4Compat,omitempty"` + + // NamedPort: This is only valid if :ref:`resolver_name ` is specified + // below and the named resolver is capable of named port resolution. + NamedPort string `json:"namedPort,omitempty"` + + PortValue int64 `json:"portValue,omitempty"` + + // Possible values: + // "TCP" + // "UDP" + Protocol string `json:"protocol,omitempty"` + + // ResolverName: The name of the custom resolver. This must have been + // registered with Envoy. If this is empty, a context dependent default + // applies. If the address is a concrete IP address, no resolution will + // occur. If address is a hostname this should be set for resolution + // other than DNS. Specifying a custom resolver with ``STRICT_DNS`` or + // ``LOGICAL_DNS`` will generate an error at runtime. + ResolverName string `json:"resolverName,omitempty"` + + // ForceSendFields is a list of field names (e.g. "Address") to + // unconditionally include in API requests. By default, fields with + // empty or default values are omitted from API requests. However, any + // non-pointer, non-interface field appearing in ForceSendFields will be + // sent to the server regardless of whether the field is empty or not. + // This may be used to include empty fields in Patch requests. + ForceSendFields []string `json:"-"` + + // NullFields is a list of field names (e.g. "Address") to include in + // API requests with the JSON null value. By default, fields with empty + // values are omitted from API requests. However, any field with an + // empty value appearing in NullFields will be sent to the server as + // null. It is an error if a field in this list has a non-empty value. + // This may be used to include null fields in Patch requests. + NullFields []string `json:"-"` +} + +func (s *SocketAddress) MarshalJSON() ([]byte, error) { + type NoMethod SocketAddress + raw := NoMethod(*s) + return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) +} + +// StaticCluster: Describes a statically loaded cluster. +type StaticCluster struct { + // Cluster: The cluster config. + Cluster googleapi.RawMessage `json:"cluster,omitempty"` + + // LastUpdated: The timestamp when the Cluster was last updated. + LastUpdated string `json:"lastUpdated,omitempty"` + + // ForceSendFields is a list of field names (e.g. "Cluster") to + // unconditionally include in API requests. By default, fields with + // empty or default values are omitted from API requests. However, any + // non-pointer, non-interface field appearing in ForceSendFields will be + // sent to the server regardless of whether the field is empty or not. + // This may be used to include empty fields in Patch requests. + ForceSendFields []string `json:"-"` + + // NullFields is a list of field names (e.g. "Cluster") to include in + // API requests with the JSON null value. By default, fields with empty + // values are omitted from API requests. However, any field with an + // empty value appearing in NullFields will be sent to the server as + // null. It is an error if a field in this list has a non-empty value. + // This may be used to include null fields in Patch requests. + NullFields []string `json:"-"` +} + +func (s *StaticCluster) MarshalJSON() ([]byte, error) { + type NoMethod StaticCluster + raw := NoMethod(*s) + return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) +} + +type StaticEndpointConfig struct { + // EndpointConfig: The endpoint config. + EndpointConfig googleapi.RawMessage `json:"endpointConfig,omitempty"` + + // LastUpdated: [#not-implemented-hide:] The timestamp when the Endpoint + // was last updated. + LastUpdated string `json:"lastUpdated,omitempty"` + + // ForceSendFields is a list of field names (e.g. "EndpointConfig") to + // unconditionally include in API requests. By default, fields with + // empty or default values are omitted from API requests. However, any + // non-pointer, non-interface field appearing in ForceSendFields will be + // sent to the server regardless of whether the field is empty or not. + // This may be used to include empty fields in Patch requests. + ForceSendFields []string `json:"-"` + + // NullFields is a list of field names (e.g. "EndpointConfig") to + // include in API requests with the JSON null value. By default, fields + // with empty values are omitted from API requests. However, any field + // with an empty value appearing in NullFields will be sent to the + // server as null. It is an error if a field in this list has a + // non-empty value. This may be used to include null fields in Patch + // requests. + NullFields []string `json:"-"` +} + +func (s *StaticEndpointConfig) MarshalJSON() ([]byte, error) { + type NoMethod StaticEndpointConfig + raw := NoMethod(*s) + return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) +} + +// StaticListener: Describes a statically loaded listener. +type StaticListener struct { + // LastUpdated: The timestamp when the Listener was last successfully + // updated. + LastUpdated string `json:"lastUpdated,omitempty"` + + // Listener: The listener config. + Listener googleapi.RawMessage `json:"listener,omitempty"` + + // ForceSendFields is a list of field names (e.g. "LastUpdated") to + // unconditionally include in API requests. By default, fields with + // empty or default values are omitted from API requests. However, any + // non-pointer, non-interface field appearing in ForceSendFields will be + // sent to the server regardless of whether the field is empty or not. + // This may be used to include empty fields in Patch requests. + ForceSendFields []string `json:"-"` + + // NullFields is a list of field names (e.g. "LastUpdated") to include + // in API requests with the JSON null value. By default, fields with + // empty values are omitted from API requests. However, any field with + // an empty value appearing in NullFields will be sent to the server as + // null. It is an error if a field in this list has a non-empty value. + // This may be used to include null fields in Patch requests. + NullFields []string `json:"-"` +} + +func (s *StaticListener) MarshalJSON() ([]byte, error) { + type NoMethod StaticListener + raw := NoMethod(*s) + return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) +} + +type StaticRouteConfig struct { + // LastUpdated: The timestamp when the Route was last updated. + LastUpdated string `json:"lastUpdated,omitempty"` + + // RouteConfig: The route config. + RouteConfig googleapi.RawMessage `json:"routeConfig,omitempty"` + + // ForceSendFields is a list of field names (e.g. "LastUpdated") to + // unconditionally include in API requests. By default, fields with + // empty or default values are omitted from API requests. However, any + // non-pointer, non-interface field appearing in ForceSendFields will be + // sent to the server regardless of whether the field is empty or not. + // This may be used to include empty fields in Patch requests. + ForceSendFields []string `json:"-"` + + // NullFields is a list of field names (e.g. "LastUpdated") to include + // in API requests with the JSON null value. By default, fields with + // empty values are omitted from API requests. However, any field with + // an empty value appearing in NullFields will be sent to the server as + // null. It is an error if a field in this list has a non-empty value. + // This may be used to include null fields in Patch requests. + NullFields []string `json:"-"` +} + +func (s *StaticRouteConfig) MarshalJSON() ([]byte, error) { + type NoMethod StaticRouteConfig + raw := NoMethod(*s) + return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) +} + +// StringMatcher: Specifies the way to match a string. +// [#next-free-field: 8] +type StringMatcher struct { + // Contains: The input string must have the substring specified here. + // Note: empty contains match is not allowed, please use regex instead. + // Examples: * ``abc`` matches the value ``xyz.abc.def`` + Contains string `json:"contains,omitempty"` + + // Exact: The input string must match exactly the string specified here. + // Examples: * ``abc`` only matches the value ``abc``. + Exact string `json:"exact,omitempty"` + + // IgnoreCase: If true, indicates the exact/prefix/suffix/contains + // matching should be case insensitive. This has no effect for the + // safe_regex match. For example, the matcher ``data`` will match both + // input string ``Data`` and ``data`` if set to true. + IgnoreCase bool `json:"ignoreCase,omitempty"` + + // Prefix: The input string must have the prefix specified here. Note: + // empty prefix is not allowed, please use regex instead. Examples: * + // ``abc`` matches the value ``abc.xyz`` + Prefix string `json:"prefix,omitempty"` + + // SafeRegex: The input string must match the regular expression + // specified here. + SafeRegex *RegexMatcher `json:"safeRegex,omitempty"` + + // Suffix: The input string must have the suffix specified here. Note: + // empty prefix is not allowed, please use regex instead. Examples: * + // ``abc`` matches the value ``xyz.abc`` + Suffix string `json:"suffix,omitempty"` + + // ForceSendFields is a list of field names (e.g. "Contains") to + // unconditionally include in API requests. By default, fields with + // empty or default values are omitted from API requests. However, any + // non-pointer, non-interface field appearing in ForceSendFields will be + // sent to the server regardless of whether the field is empty or not. + // This may be used to include empty fields in Patch requests. + ForceSendFields []string `json:"-"` + + // NullFields is a list of field names (e.g. "Contains") to include in + // API requests with the JSON null value. By default, fields with empty + // values are omitted from API requests. However, any field with an + // empty value appearing in NullFields will be sent to the server as + // null. It is an error if a field in this list has a non-empty value. + // This may be used to include null fields in Patch requests. + NullFields []string `json:"-"` +} + +func (s *StringMatcher) MarshalJSON() ([]byte, error) { + type NoMethod StringMatcher + raw := NoMethod(*s) + return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) +} + +// StructMatcher: StructMatcher provides a general interface to check if +// a given value is matched in google.protobuf.Struct. It uses “path“ +// to retrieve the value from the struct and then check if it's matched +// to the specified value. For example, for the following Struct: .. +// code-block:: yaml fields: a: struct_value: fields: b: struct_value: +// fields: c: string_value: pro t: list_value: values: - string_value: m +// - string_value: n The following MetadataMatcher is matched as the +// path [a, b, c] will retrieve a string value "pro" from the Metadata +// which is matched to the specified prefix match. .. code-block:: yaml +// path: - key: a - key: b - key: c value: string_match: prefix: pr The +// following StructMatcher is matched as the code will match one of the +// string values in the list at the path [a, t]. .. code-block:: yaml +// path: - key: a - key: t value: list_match: one_of: string_match: +// exact: m An example use of StructMatcher is to match metadata in +// envoy.v*.core.Node. +type StructMatcher struct { + // Path: The path to retrieve the Value from the Struct. + Path []*PathSegment `json:"path,omitempty"` + + // Value: The StructMatcher is matched if the value retrieved by path is + // matched to this value. + Value *ValueMatcher `json:"value,omitempty"` + + // ForceSendFields is a list of field names (e.g. "Path") to + // unconditionally include in API requests. By default, fields with + // empty or default values are omitted from API requests. However, any + // non-pointer, non-interface field appearing in ForceSendFields will be + // sent to the server regardless of whether the field is empty or not. + // This may be used to include empty fields in Patch requests. + ForceSendFields []string `json:"-"` + + // NullFields is a list of field names (e.g. "Path") to include in API + // requests with the JSON null value. By default, fields with empty + // values are omitted from API requests. However, any field with an + // empty value appearing in NullFields will be sent to the server as + // null. It is an error if a field in this list has a non-empty value. + // This may be used to include null fields in Patch requests. + NullFields []string `json:"-"` +} + +func (s *StructMatcher) MarshalJSON() ([]byte, error) { + type NoMethod StructMatcher + raw := NoMethod(*s) + return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) +} + +type UpdateFailureState struct { + // Details: Details about the last failed update attempt. + Details string `json:"details,omitempty"` + + // FailedConfiguration: What the component configuration would have been + // if the update had succeeded. This field may not be populated by xDS + // clients due to storage overhead. + FailedConfiguration googleapi.RawMessage `json:"failedConfiguration,omitempty"` + + // LastUpdateAttempt: Time of the latest failed update attempt. + LastUpdateAttempt string `json:"lastUpdateAttempt,omitempty"` + + // VersionInfo: This is the version of the rejected resource. + // [#not-implemented-hide:] + VersionInfo string `json:"versionInfo,omitempty"` + + // ForceSendFields is a list of field names (e.g. "Details") to + // unconditionally include in API requests. By default, fields with + // empty or default values are omitted from API requests. However, any + // non-pointer, non-interface field appearing in ForceSendFields will be + // sent to the server regardless of whether the field is empty or not. + // This may be used to include empty fields in Patch requests. + ForceSendFields []string `json:"-"` + + // NullFields is a list of field names (e.g. "Details") to include in + // API requests with the JSON null value. By default, fields with empty + // values are omitted from API requests. However, any field with an + // empty value appearing in NullFields will be sent to the server as + // null. It is an error if a field in this list has a non-empty value. + // This may be used to include null fields in Patch requests. + NullFields []string `json:"-"` +} + +func (s *UpdateFailureState) MarshalJSON() ([]byte, error) { + type NoMethod UpdateFailureState + raw := NoMethod(*s) + return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) +} + +// ValueMatcher: Specifies the way to match a ProtobufWkt::Value. +// Primitive values and ListValue are supported. StructValue is not +// supported and is always not matched. [#next-free-field: 7] +type ValueMatcher struct { + // BoolMatch: If specified, a match occurs if and only if the target + // value is a bool value and is equal to this field. + BoolMatch bool `json:"boolMatch,omitempty"` + + // DoubleMatch: If specified, a match occurs if and only if the target + // value is a double value and is matched to this field. + DoubleMatch *DoubleMatcher `json:"doubleMatch,omitempty"` + + // ListMatch: If specified, a match occurs if and only if the target + // value is a list value and is matched to this field. + ListMatch *ListMatcher `json:"listMatch,omitempty"` + + // NullMatch: If specified, a match occurs if and only if the target + // value is a NullValue. + NullMatch *NullMatch `json:"nullMatch,omitempty"` + + // PresentMatch: If specified, value match will be performed based on + // whether the path is referring to a valid primitive value in the + // metadata. If the path is referring to a non-primitive value, the + // result is always not matched. + PresentMatch bool `json:"presentMatch,omitempty"` + + // StringMatch: If specified, a match occurs if and only if the target + // value is a string value and is matched to this field. + StringMatch *StringMatcher `json:"stringMatch,omitempty"` + + // ForceSendFields is a list of field names (e.g. "BoolMatch") to + // unconditionally include in API requests. By default, fields with + // empty or default values are omitted from API requests. However, any + // non-pointer, non-interface field appearing in ForceSendFields will be + // sent to the server regardless of whether the field is empty or not. + // This may be used to include empty fields in Patch requests. + ForceSendFields []string `json:"-"` + + // NullFields is a list of field names (e.g. "BoolMatch") to include in + // API requests with the JSON null value. By default, fields with empty + // values are omitted from API requests. However, any field with an + // empty value appearing in NullFields will be sent to the server as + // null. It is an error if a field in this list has a non-empty value. + // This may be used to include null fields in Patch requests. + NullFields []string `json:"-"` +} + +func (s *ValueMatcher) MarshalJSON() ([]byte, error) { + type NoMethod ValueMatcher + raw := NoMethod(*s) + return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) +} + +// method id "trafficdirector.discovery.client_status": + +type DiscoveryClientStatusCall struct { + s *Service + clientstatusrequest *ClientStatusRequest + urlParams_ gensupport.URLParams + ctx_ context.Context + header_ http.Header +} + +// ClientStatus: +func (r *DiscoveryService) ClientStatus(clientstatusrequest *ClientStatusRequest) *DiscoveryClientStatusCall { + c := &DiscoveryClientStatusCall{s: r.s, urlParams_: make(gensupport.URLParams)} + c.clientstatusrequest = clientstatusrequest + return c +} + +// Fields allows partial responses to be retrieved. See +// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse +// for more information. +func (c *DiscoveryClientStatusCall) Fields(s ...googleapi.Field) *DiscoveryClientStatusCall { + c.urlParams_.Set("fields", googleapi.CombineFields(s)) + return c +} + +// Context sets the context to be used in this call's Do method. Any +// pending HTTP request will be aborted if the provided context is +// canceled. +func (c *DiscoveryClientStatusCall) Context(ctx context.Context) *DiscoveryClientStatusCall { + c.ctx_ = ctx + return c +} + +// Header returns an http.Header that can be modified by the caller to +// add HTTP headers to the request. +func (c *DiscoveryClientStatusCall) Header() http.Header { + if c.header_ == nil { + c.header_ = make(http.Header) + } + return c.header_ +} + +func (c *DiscoveryClientStatusCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := make(http.Header) + reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/"+internal.Version) + for k, v := range c.header_ { + reqHeaders[k] = v + } + reqHeaders.Set("User-Agent", c.s.userAgent()) + var body io.Reader = nil + body, err := googleapi.WithoutDataWrapper.JSONReader(c.clientstatusrequest) + if err != nil { + return nil, err + } + reqHeaders.Set("Content-Type", "application/json") + c.urlParams_.Set("alt", alt) + c.urlParams_.Set("prettyPrint", "false") + urls := googleapi.ResolveRelative(c.s.BasePath, "v3/discovery:client_status") + urls += "?" + c.urlParams_.Encode() + req, err := http.NewRequest("POST", urls, body) + if err != nil { + return nil, err + } + req.Header = reqHeaders + return gensupport.SendRequest(c.ctx_, c.s.client, req) +} + +// Do executes the "trafficdirector.discovery.client_status" call. +// Exactly one of *ClientStatusResponse or error will be non-nil. Any +// non-2xx status code is an error. Response headers are in either +// *ClientStatusResponse.ServerResponse.Header or (if a response was +// returned at all) in error.(*googleapi.Error).Header. Use +// googleapi.IsNotModified to check whether the returned error was +// because http.StatusNotModified was returned. +func (c *DiscoveryClientStatusCall) Do(opts ...googleapi.CallOption) (*ClientStatusResponse, error) { + gensupport.SetOptions(c.urlParams_, opts...) + res, err := c.doRequest("json") + if res != nil && res.StatusCode == http.StatusNotModified { + if res.Body != nil { + res.Body.Close() + } + return nil, gensupport.WrapError(&googleapi.Error{ + Code: res.StatusCode, + Header: res.Header, + }) + } + if err != nil { + return nil, err + } + defer googleapi.CloseBody(res) + if err := googleapi.CheckResponse(res); err != nil { + return nil, gensupport.WrapError(err) + } + ret := &ClientStatusResponse{ + ServerResponse: googleapi.ServerResponse{ + Header: res.Header, + HTTPStatusCode: res.StatusCode, + }, + } + target := &ret + if err := gensupport.DecodeResponse(target, res); err != nil { + return nil, err + } + return ret, nil + // { + // "description": "", + // "flatPath": "v3/discovery:client_status", + // "httpMethod": "POST", + // "id": "trafficdirector.discovery.client_status", + // "parameterOrder": [], + // "parameters": {}, + // "path": "v3/discovery:client_status", + // "request": { + // "$ref": "ClientStatusRequest" + // }, + // "response": { + // "$ref": "ClientStatusResponse" + // }, + // "scopes": [ + // "https://www.googleapis.com/auth/cloud-platform" + // ] + // } + +}