diff --git a/batch/v1/batch-api.json b/batch/v1/batch-api.json index a299d6a8de8..0f95fa26e45 100644 --- a/batch/v1/batch-api.json +++ b/batch/v1/batch-api.json @@ -561,7 +561,7 @@ } } }, - "revision": "20230914", + "revision": "20230929", "rootUrl": "https://batch.googleapis.com/", "schemas": { "Accelerator": { @@ -1859,6 +1859,10 @@ "$ref": "Container", "description": "Container runnable." }, + "displayName": { + "description": "Optional. DisplayName is an optional field that can be provided by the caller. If provided, it will be used in logs and other outputs to identify the script, making it easier for users to understand the logs. If not provided the index of the runnable will be used for outputs.", + "type": "string" + }, "environment": { "$ref": "Environment", "description": "Environment variables for this Runnable (overrides variables set for the whole Task or TaskGroup)." diff --git a/batch/v1/batch-gen.go b/batch/v1/batch-gen.go index 3db8aa19ca4..4a19c8c777b 100644 --- a/batch/v1/batch-gen.go +++ b/batch/v1/batch-gen.go @@ -2337,6 +2337,13 @@ type Runnable struct { // Container: Container runnable. Container *Container `json:"container,omitempty"` + // DisplayName: Optional. DisplayName is an optional field that can be + // provided by the caller. If provided, it will be used in logs and + // other outputs to identify the script, making it easier for users to + // understand the logs. If not provided the index of the runnable will + // be used for outputs. + DisplayName string `json:"displayName,omitempty"` + // Environment: Environment variables for this Runnable (overrides // variables set for the whole Task or TaskGroup). Environment *Environment `json:"environment,omitempty"` diff --git a/beyondcorp/v1alpha/beyondcorp-api.json b/beyondcorp/v1alpha/beyondcorp-api.json index b78cc9fbf90..e18388d886c 100644 --- a/beyondcorp/v1alpha/beyondcorp-api.json +++ b/beyondcorp/v1alpha/beyondcorp-api.json @@ -3674,7 +3674,7 @@ } } }, - "revision": "20230823", + "revision": "20230927", "rootUrl": "https://beyondcorp.googleapis.com/", "schemas": { "AllocatedConnection": { @@ -5259,6 +5259,10 @@ "readOnly": true, "type": "string" }, + "proxyProtocolConfig": { + "$ref": "GoogleCloudBeyondcorpPartnerservicesV1alphaProxyProtocolConfig", + "description": "Optional. Protocol config data for the Proxy." + }, "proxyUri": { "description": "Required. The URI of the proxy server.", "type": "string" @@ -5280,6 +5284,20 @@ }, "type": "object" }, + "GoogleCloudBeyondcorpPartnerservicesV1alphaProxyProtocolConfig": { + "description": "The protocol data that specifies how to communicate with Partner's Proxy.", + "id": "GoogleCloudBeyondcorpPartnerservicesV1alphaProxyProtocolConfig", + "properties": { + "metadata": { + "additionalProperties": { + "type": "string" + }, + "description": "Optional. Untyped property bag to be sent back to the proxy using client specific mechanism.", + "type": "object" + } + }, + "type": "object" + }, "GoogleCloudBeyondcorpPartnerservicesV1alphaRoutingInfo": { "description": "Message contains the routing information to direct traffic to the proxy server.", "id": "GoogleCloudBeyondcorpPartnerservicesV1alphaRoutingInfo", diff --git a/beyondcorp/v1alpha/beyondcorp-gen.go b/beyondcorp/v1alpha/beyondcorp-gen.go index 7bceed283f0..75c74ec8645 100644 --- a/beyondcorp/v1alpha/beyondcorp-gen.go +++ b/beyondcorp/v1alpha/beyondcorp-gen.go @@ -2697,6 +2697,9 @@ type GoogleCloudBeyondcorpPartnerservicesV1alphaProxyConfig struct { // Name: Output only. ProxyConfig resource name. Name string `json:"name,omitempty"` + // ProxyProtocolConfig: Optional. Protocol config data for the Proxy. + ProxyProtocolConfig *GoogleCloudBeyondcorpPartnerservicesV1alphaProxyProtocolConfig `json:"proxyProtocolConfig,omitempty"` + // ProxyUri: Required. The URI of the proxy server. ProxyUri string `json:"proxyUri,omitempty"` @@ -2739,6 +2742,36 @@ func (s *GoogleCloudBeyondcorpPartnerservicesV1alphaProxyConfig) MarshalJSON() ( return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) } +// GoogleCloudBeyondcorpPartnerservicesV1alphaProxyProtocolConfig: The +// protocol data that specifies how to communicate with Partner's Proxy. +type GoogleCloudBeyondcorpPartnerservicesV1alphaProxyProtocolConfig struct { + // Metadata: Optional. Untyped property bag to be sent back to the proxy + // using client specific mechanism. + Metadata map[string]string `json:"metadata,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 *GoogleCloudBeyondcorpPartnerservicesV1alphaProxyProtocolConfig) MarshalJSON() ([]byte, error) { + type NoMethod GoogleCloudBeyondcorpPartnerservicesV1alphaProxyProtocolConfig + raw := NoMethod(*s) + return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) +} + // GoogleCloudBeyondcorpPartnerservicesV1alphaRoutingInfo: Message // contains the routing information to direct traffic to the proxy // server. diff --git a/dataproc/v1/dataproc-api.json b/dataproc/v1/dataproc-api.json index 6ffa1ec23c0..442f29a3edb 100644 --- a/dataproc/v1/dataproc-api.json +++ b/dataproc/v1/dataproc-api.json @@ -2028,6 +2028,11 @@ "required": true, "type": "string" }, + "parentOperationId": { + "description": "Optional. operation id of the parent operation sending the create request", + "location": "query", + "type": "string" + }, "requestId": { "description": "Optional. A unique ID used to identify the request. If the server receives two CreateNodeGroupRequest (https://cloud.google.com/dataproc/docs/reference/rpc/google.cloud.dataproc.v1#google.cloud.dataproc.v1.CreateNodeGroupRequests) with the same ID, the second request is ignored and the first google.longrunning.Operation created and stored in the backend is returned.Recommendation: Set this value to a UUID (https://en.wikipedia.org/wiki/Universally_unique_identifier).The ID must contain only letters (a-z, A-Z), numbers (0-9), underscores (_), and hyphens (-). The maximum length is 40 characters.", "location": "query", @@ -3001,7 +3006,7 @@ } } }, - "revision": "20230926", + "revision": "20231002", "rootUrl": "https://dataproc.googleapis.com/", "schemas": { "AcceleratorConfig": { @@ -5957,6 +5962,10 @@ "format": "google-duration", "type": "string" }, + "parentOperationId": { + "description": "Optional. operation id of the parent operation sending the resize request", + "type": "string" + }, "requestId": { "description": "Optional. A unique ID used to identify the request. If the server receives two ResizeNodeGroupRequest (https://cloud.google.com/dataproc/docs/reference/rpc/google.cloud.dataproc.v1#google.cloud.dataproc.v1.ResizeNodeGroupRequests) with the same ID, the second request is ignored and the first google.longrunning.Operation created and stored in the backend is returned.Recommendation: Set this value to a UUID (https://en.wikipedia.org/wiki/Universally_unique_identifier).The ID must contain only letters (a-z, A-Z), numbers (0-9), underscores (_), and hyphens (-). The maximum length is 40 characters.", "type": "string" diff --git a/dataproc/v1/dataproc-gen.go b/dataproc/v1/dataproc-gen.go index d44af14472b..85cbba954cb 100644 --- a/dataproc/v1/dataproc-gen.go +++ b/dataproc/v1/dataproc-gen.go @@ -5191,6 +5191,10 @@ type ResizeNodeGroupRequest struct { // supported on Dataproc image versions 1.2 and higher. GracefulDecommissionTimeout string `json:"gracefulDecommissionTimeout,omitempty"` + // ParentOperationId: Optional. operation id of the parent operation + // sending the resize request + ParentOperationId string `json:"parentOperationId,omitempty"` + // RequestId: Optional. A unique ID used to identify the request. If the // server receives two ResizeNodeGroupRequest // (https://cloud.google.com/dataproc/docs/reference/rpc/google.cloud.dataproc.v1#google.cloud.dataproc.v1.ResizeNodeGroupRequests) @@ -16579,6 +16583,13 @@ func (c *ProjectsRegionsClustersNodeGroupsCreateCall) NodeGroupId(nodeGroupId st return c } +// ParentOperationId sets the optional parameter "parentOperationId": +// operation id of the parent operation sending the create request +func (c *ProjectsRegionsClustersNodeGroupsCreateCall) ParentOperationId(parentOperationId string) *ProjectsRegionsClustersNodeGroupsCreateCall { + c.urlParams_.Set("parentOperationId", parentOperationId) + return c +} + // RequestId sets the optional parameter "requestId": A unique ID used // to identify the request. If the server receives two // CreateNodeGroupRequest @@ -16705,6 +16716,11 @@ func (c *ProjectsRegionsClustersNodeGroupsCreateCall) Do(opts ...googleapi.CallO // "required": true, // "type": "string" // }, + // "parentOperationId": { + // "description": "Optional. operation id of the parent operation sending the create request", + // "location": "query", + // "type": "string" + // }, // "requestId": { // "description": "Optional. A unique ID used to identify the request. If the server receives two CreateNodeGroupRequest (https://cloud.google.com/dataproc/docs/reference/rpc/google.cloud.dataproc.v1#google.cloud.dataproc.v1.CreateNodeGroupRequests) with the same ID, the second request is ignored and the first google.longrunning.Operation created and stored in the backend is returned.Recommendation: Set this value to a UUID (https://en.wikipedia.org/wiki/Universally_unique_identifier).The ID must contain only letters (a-z, A-Z), numbers (0-9), underscores (_), and hyphens (-). The maximum length is 40 characters.", // "location": "query", diff --git a/eventarc/v1/eventarc-api.json b/eventarc/v1/eventarc-api.json index 53c3346f5ad..740d47cd222 100644 --- a/eventarc/v1/eventarc-api.json +++ b/eventarc/v1/eventarc-api.json @@ -1197,7 +1197,7 @@ } } }, - "revision": "20230918", + "revision": "20230929", "rootUrl": "https://eventarc.googleapis.com/", "schemas": { "AuditConfig": { @@ -1662,10 +1662,6 @@ "description": "Represents a HTTP endpoint destination.", "id": "HttpEndpoint", "properties": { - "forwardDnsRequests": { - "description": "Optional. Forwards DNS requests to the VPC specified by network config to resolve the HTTP endpoint. Default to false. If set to true, Eventarc will create a peering zone to the consumer VPC and forward DNS requests. See: https://cloud.google.com/dns/docs/zones/zones-overview#peering_zones Enable this if the URI uses an internal DNS name or a private Cloud DNS zone.", - "type": "boolean" - }, "uri": { "description": "Required. The URI of the HTTP enpdoint. The value must be a RFC2396 URI string. Examples: `http://10.10.10.8:80/route`, `http://svc.us-central1.p.local:8080/`. Only HTTP and HTTPS protocols are supported. The host can be either a static IP addressable from the VPC specified by the network config, or an internal DNS hostname of the service resolvable via Cloud DNS.", "type": "string" diff --git a/eventarc/v1/eventarc-gen.go b/eventarc/v1/eventarc-gen.go index b966bb0f327..b0490694373 100644 --- a/eventarc/v1/eventarc-gen.go +++ b/eventarc/v1/eventarc-gen.go @@ -1099,15 +1099,6 @@ func (s *GoogleRpcStatus) MarshalJSON() ([]byte, error) { // HttpEndpoint: Represents a HTTP endpoint destination. type HttpEndpoint struct { - // ForwardDnsRequests: Optional. Forwards DNS requests to the VPC - // specified by network config to resolve the HTTP endpoint. Default to - // false. If set to true, Eventarc will create a peering zone to the - // consumer VPC and forward DNS requests. See: - // https://cloud.google.com/dns/docs/zones/zones-overview#peering_zones - // Enable this if the URI uses an internal DNS name or a private Cloud - // DNS zone. - ForwardDnsRequests bool `json:"forwardDnsRequests,omitempty"` - // Uri: Required. The URI of the HTTP enpdoint. The value must be a // RFC2396 URI string. Examples: `http://10.10.10.8:80/route`, // `http://svc.us-central1.p.local:8080/`. Only HTTP and HTTPS protocols @@ -1116,21 +1107,20 @@ type HttpEndpoint struct { // of the service resolvable via Cloud DNS. Uri string `json:"uri,omitempty"` - // ForceSendFields is a list of field names (e.g. "ForwardDnsRequests") - // to unconditionally include in API requests. By default, fields with + // ForceSendFields is a list of field names (e.g. "Uri") 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. "ForwardDnsRequests") 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. "Uri") 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/firestore/v1/firestore-api.json b/firestore/v1/firestore-api.json index a2d05fe7ddb..e2efb1c0bce 100644 --- a/firestore/v1/firestore-api.json +++ b/firestore/v1/firestore-api.json @@ -1672,7 +1672,7 @@ } } }, - "revision": "20230918", + "revision": "20231002", "rootUrl": "https://firestore.googleapis.com/", "schemas": { "Aggregation": { @@ -2627,7 +2627,7 @@ "type": "string" }, "snapshotTime": { - "description": "The timestamp that corresponds to the version of the database to be exported. The timestamp must be rounded to the minute, in the past, and not older than 1 hour. If specified, then the exported documents will represent a consistent view of the database at the provided time. Otherwise, there are no guarantees about the consistency of the exported documents.", + "description": "The timestamp that corresponds to the version of the database to be exported. The timestamp must be rounded to the minute, in the past, and not older than 5 days. Please choose a reasonable timestamp based on prior knowledge on how long exports take as data at provided snapshot timestamp can expire during export. If specified, then the exported documents will represent a consistent view of the database at the provided time. Otherwise, there are no guarantees about the consistency of the exported documents.", "format": "google-datetime", "type": "string" } @@ -2728,6 +2728,12 @@ }, "type": "object" }, + "GoogleFirestoreAdminV1FlatIndex": { + "description": "An index that stores vectors in a flat data structure, and supports exhaustive search.", + "id": "GoogleFirestoreAdminV1FlatIndex", + "properties": {}, + "type": "object" + }, "GoogleFirestoreAdminV1ImportDocumentsMetadata": { "description": "Metadata for google.longrunning.Operation results from FirestoreAdmin.ImportDocuments.", "id": "GoogleFirestoreAdminV1ImportDocumentsMetadata", @@ -2966,6 +2972,10 @@ "The field is ordered by descending field value." ], "type": "string" + }, + "vectorConfig": { + "$ref": "GoogleFirestoreAdminV1VectorConfig", + "description": "Indicates that this field supports nearest neighbors and distance operations on vector." } }, "type": "object" @@ -3189,7 +3199,7 @@ "id": "GoogleFirestoreAdminV1RestoreDatabaseRequest", "properties": { "backup": { - "description": "Required. Backup to restore from. Must be from the same project as the parent. Format is: `projects/{project_id}/locations/{location}/backups/{backup}`", + "description": "Backup to restore from. Must be from the same project as the parent. Format is: `projects/{project_id}/locations/{location}/backups/{backup}`", "type": "string" }, "databaseId": { @@ -3275,6 +3285,22 @@ "properties": {}, "type": "object" }, + "GoogleFirestoreAdminV1VectorConfig": { + "description": "The index configuration to support vector search operations", + "id": "GoogleFirestoreAdminV1VectorConfig", + "properties": { + "dimension": { + "description": "Required. The vector dimension this configuration applies to. The resulting index will only include vectors of this dimension, and can be used for vector search with the same dimension.", + "format": "int32", + "type": "integer" + }, + "flat": { + "$ref": "GoogleFirestoreAdminV1FlatIndex", + "description": "Indicates the vector index is a flat index." + } + }, + "type": "object" + }, "GoogleFirestoreAdminV1WeeklyRecurrence": { "description": "Represents a recurring schedule that runs on a specified day of the week. The time zone is UTC.", "id": "GoogleFirestoreAdminV1WeeklyRecurrence", @@ -3619,7 +3645,7 @@ "type": "string" }, "partitions": { - "description": "Partition results. Each partition is a split point that can be used by RunQuery as a starting or end point for the query results. The RunQuery requests must be made with the same query supplied to this PartitionQuery request. The partition cursors will be ordered according to same ordering as the results of the query supplied to PartitionQuery. For example, if a PartitionQuery request returns partition cursors A and B, running the following three queries will return the entire result set of the original query: * query, end_at A * query, start_at A, end_at B * query, start_at B An empty result may indicate that the query has too few results to be partitioned.", + "description": "Partition results. Each partition is a split point that can be used by RunQuery as a starting or end point for the query results. The RunQuery requests must be made with the same query supplied to this PartitionQuery request. The partition cursors will be ordered according to same ordering as the results of the query supplied to PartitionQuery. For example, if a PartitionQuery request returns partition cursors A and B, running the following three queries will return the entire result set of the original query: * query, end_at A * query, start_at A, end_at B * query, start_at B An empty result may indicate that the query has too few results to be partitioned, or that the query is not yet supported for partitioning.", "items": { "$ref": "Cursor" }, diff --git a/firestore/v1/firestore-gen.go b/firestore/v1/firestore-gen.go index b3637b5da75..10ed2976f19 100644 --- a/firestore/v1/firestore-gen.go +++ b/firestore/v1/firestore-gen.go @@ -1897,10 +1897,12 @@ type GoogleFirestoreAdminV1ExportDocumentsRequest struct { // SnapshotTime: The timestamp that corresponds to the version of the // database to be exported. The timestamp must be rounded to the minute, - // in the past, and not older than 1 hour. If specified, then the - // exported documents will represent a consistent view of the database - // at the provided time. Otherwise, there are no guarantees about the - // consistency of the exported documents. + // in the past, and not older than 5 days. Please choose a reasonable + // timestamp based on prior knowledge on how long exports take as data + // at provided snapshot timestamp can expire during export. If + // specified, then the exported documents will represent a consistent + // view of the database at the provided time. Otherwise, there are no + // guarantees about the consistency of the exported documents. SnapshotTime string `json:"snapshotTime,omitempty"` // ForceSendFields is a list of field names (e.g. "CollectionIds") to @@ -2092,6 +2094,11 @@ func (s *GoogleFirestoreAdminV1FieldOperationMetadata) MarshalJSON() ([]byte, er return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) } +// GoogleFirestoreAdminV1FlatIndex: An index that stores vectors in a +// flat data structure, and supports exhaustive search. +type GoogleFirestoreAdminV1FlatIndex struct { +} + // GoogleFirestoreAdminV1ImportDocumentsMetadata: Metadata for // google.longrunning.Operation results from // FirestoreAdmin.ImportDocuments. @@ -2415,6 +2422,10 @@ type GoogleFirestoreAdminV1IndexField struct { // "DESCENDING" - The field is ordered by descending field value. Order string `json:"order,omitempty"` + // VectorConfig: Indicates that this field supports nearest neighbors + // and distance operations on vector. + VectorConfig *GoogleFirestoreAdminV1VectorConfig `json:"vectorConfig,omitempty"` + // ForceSendFields is a list of field names (e.g. "ArrayConfig") to // unconditionally include in API requests. By default, fields with // empty or default values are omitted from API requests. However, any @@ -2784,8 +2795,8 @@ func (s *GoogleFirestoreAdminV1RestoreDatabaseMetadata) MarshalJSON() ([]byte, e // GoogleFirestoreAdminV1RestoreDatabaseRequest: The request message for // FirestoreAdmin.RestoreDatabase. type GoogleFirestoreAdminV1RestoreDatabaseRequest struct { - // Backup: Required. Backup to restore from. Must be from the same - // project as the parent. Format is: + // Backup: Backup to restore from. Must be from the same project as the + // parent. Format is: // `projects/{project_id}/locations/{location}/backups/{backup}` Backup string `json:"backup,omitempty"` @@ -2945,6 +2956,40 @@ func (s *GoogleFirestoreAdminV1TtlConfigDelta) MarshalJSON() ([]byte, error) { type GoogleFirestoreAdminV1UpdateDatabaseMetadata struct { } +// GoogleFirestoreAdminV1VectorConfig: The index configuration to +// support vector search operations +type GoogleFirestoreAdminV1VectorConfig struct { + // Dimension: Required. The vector dimension this configuration applies + // to. The resulting index will only include vectors of this dimension, + // and can be used for vector search with the same dimension. + Dimension int64 `json:"dimension,omitempty"` + + // Flat: Indicates the vector index is a flat index. + Flat *GoogleFirestoreAdminV1FlatIndex `json:"flat,omitempty"` + + // ForceSendFields is a list of field names (e.g. "Dimension") 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. "Dimension") 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 *GoogleFirestoreAdminV1VectorConfig) MarshalJSON() ([]byte, error) { + type NoMethod GoogleFirestoreAdminV1VectorConfig + raw := NoMethod(*s) + return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) +} + // GoogleFirestoreAdminV1WeeklyRecurrence: Represents a recurring // schedule that runs on a specified day of the week. The time zone is // UTC. @@ -3571,7 +3616,7 @@ type PartitionQueryResponse struct { // queries will return the entire result set of the original query: * // query, end_at A * query, start_at A, end_at B * query, start_at B An // empty result may indicate that the query has too few results to be - // partitioned. + // partitioned, or that the query is not yet supported for partitioning. Partitions []*Cursor `json:"partitions,omitempty"` // ServerResponse contains the HTTP response code and headers from the diff --git a/firestore/v1beta1/firestore-api.json b/firestore/v1beta1/firestore-api.json index 7c9101a1c6c..4882556a0e1 100644 --- a/firestore/v1beta1/firestore-api.json +++ b/firestore/v1beta1/firestore-api.json @@ -950,7 +950,7 @@ } } }, - "revision": "20230905", + "revision": "20231002", "rootUrl": "https://firestore.googleapis.com/", "schemas": { "Aggregation": { @@ -2213,7 +2213,7 @@ "type": "string" }, "partitions": { - "description": "Partition results. Each partition is a split point that can be used by RunQuery as a starting or end point for the query results. The RunQuery requests must be made with the same query supplied to this PartitionQuery request. The partition cursors will be ordered according to same ordering as the results of the query supplied to PartitionQuery. For example, if a PartitionQuery request returns partition cursors A and B, running the following three queries will return the entire result set of the original query: * query, end_at A * query, start_at A, end_at B * query, start_at B An empty result may indicate that the query has too few results to be partitioned.", + "description": "Partition results. Each partition is a split point that can be used by RunQuery as a starting or end point for the query results. The RunQuery requests must be made with the same query supplied to this PartitionQuery request. The partition cursors will be ordered according to same ordering as the results of the query supplied to PartitionQuery. For example, if a PartitionQuery request returns partition cursors A and B, running the following three queries will return the entire result set of the original query: * query, end_at A * query, start_at A, end_at B * query, start_at B An empty result may indicate that the query has too few results to be partitioned, or that the query is not yet supported for partitioning.", "items": { "$ref": "Cursor" }, diff --git a/firestore/v1beta1/firestore-gen.go b/firestore/v1beta1/firestore-gen.go index 8d68b2d67e4..22e6c9d8c22 100644 --- a/firestore/v1beta1/firestore-gen.go +++ b/firestore/v1beta1/firestore-gen.go @@ -2469,7 +2469,7 @@ type PartitionQueryResponse struct { // queries will return the entire result set of the original query: * // query, end_at A * query, start_at A, end_at B * query, start_at B An // empty result may indicate that the query has too few results to be - // partitioned. + // partitioned, or that the query is not yet supported for partitioning. Partitions []*Cursor `json:"partitions,omitempty"` // ServerResponse contains the HTTP response code and headers from the diff --git a/gkehub/v1/gkehub-api.json b/gkehub/v1/gkehub-api.json index 7eebda555e8..80e3fe5c17e 100644 --- a/gkehub/v1/gkehub-api.json +++ b/gkehub/v1/gkehub-api.json @@ -1834,7 +1834,7 @@ } } }, - "revision": "20230914", + "revision": "20230929", "rootUrl": "https://gkehub.googleapis.com/", "schemas": { "AppDevExperienceFeatureSpec": { @@ -4491,10 +4491,6 @@ "description": "Scope represents a Scope in a Fleet.", "id": "Scope", "properties": { - "allMemberships": { - "description": "If true, all Memberships in the Fleet bind to this Scope.", - "type": "boolean" - }, "createTime": { "description": "Output only. When the scope was created.", "format": "google-datetime", diff --git a/gkehub/v1/gkehub-gen.go b/gkehub/v1/gkehub-gen.go index ce1273faf94..fe0f76d7e31 100644 --- a/gkehub/v1/gkehub-gen.go +++ b/gkehub/v1/gkehub-gen.go @@ -4618,10 +4618,6 @@ func (s *Role) MarshalJSON() ([]byte, error) { // Scope: Scope represents a Scope in a Fleet. type Scope struct { - // AllMemberships: If true, all Memberships in the Fleet bind to this - // Scope. - AllMemberships bool `json:"allMemberships,omitempty"` - // CreateTime: Output only. When the scope was created. CreateTime string `json:"createTime,omitempty"` @@ -4659,7 +4655,7 @@ type Scope struct { // server. googleapi.ServerResponse `json:"-"` - // ForceSendFields is a list of field names (e.g. "AllMemberships") to + // 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 @@ -4667,13 +4663,12 @@ type Scope struct { // This may be used to include empty fields in Patch requests. ForceSendFields []string `json:"-"` - // NullFields is a list of field names (e.g. "AllMemberships") 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. "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:"-"` } diff --git a/gkehub/v1alpha/gkehub-api.json b/gkehub/v1alpha/gkehub-api.json index 87f346c11fd..854109ab179 100644 --- a/gkehub/v1alpha/gkehub-api.json +++ b/gkehub/v1alpha/gkehub-api.json @@ -2414,7 +2414,7 @@ } } }, - "revision": "20230914", + "revision": "20230929", "rootUrl": "https://gkehub.googleapis.com/", "schemas": { "AnthosObservabilityFeatureSpec": { @@ -6096,10 +6096,6 @@ "description": "Scope represents a Scope in a Fleet.", "id": "Scope", "properties": { - "allMemberships": { - "description": "If true, all Memberships in the Fleet bind to this Scope.", - "type": "boolean" - }, "createTime": { "description": "Output only. When the scope was created.", "format": "google-datetime", diff --git a/gkehub/v1alpha/gkehub-gen.go b/gkehub/v1alpha/gkehub-gen.go index 6a2a482f8f7..11e95e5aa02 100644 --- a/gkehub/v1alpha/gkehub-gen.go +++ b/gkehub/v1alpha/gkehub-gen.go @@ -6411,10 +6411,6 @@ func (s *Role) MarshalJSON() ([]byte, error) { // Scope: Scope represents a Scope in a Fleet. type Scope struct { - // AllMemberships: If true, all Memberships in the Fleet bind to this - // Scope. - AllMemberships bool `json:"allMemberships,omitempty"` - // CreateTime: Output only. When the scope was created. CreateTime string `json:"createTime,omitempty"` @@ -6452,7 +6448,7 @@ type Scope struct { // server. googleapi.ServerResponse `json:"-"` - // ForceSendFields is a list of field names (e.g. "AllMemberships") to + // 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 @@ -6460,13 +6456,12 @@ type Scope struct { // This may be used to include empty fields in Patch requests. ForceSendFields []string `json:"-"` - // NullFields is a list of field names (e.g. "AllMemberships") 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. "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:"-"` } diff --git a/gkehub/v1beta/gkehub-api.json b/gkehub/v1beta/gkehub-api.json index 3ea07ffa141..85bb248ac95 100644 --- a/gkehub/v1beta/gkehub-api.json +++ b/gkehub/v1beta/gkehub-api.json @@ -653,6 +653,161 @@ }, "memberships": { "methods": { + "create": { + "description": "Creates a new Membership. **This is currently only supported for GKE clusters on Google Cloud**. To register other clusters, follow the instructions at https://cloud.google.com/anthos/multicluster-management/connect/registering-a-cluster.", + "flatPath": "v1beta/projects/{projectsId}/locations/{locationsId}/memberships", + "httpMethod": "POST", + "id": "gkehub.projects.locations.memberships.create", + "parameterOrder": [ + "parent" + ], + "parameters": { + "membershipId": { + "description": "Required. Client chosen ID for the membership. `membership_id` must be a valid RFC 1123 compliant DNS label: 1. At most 63 characters in length 2. It must consist of lower case alphanumeric characters or `-` 3. It must start and end with an alphanumeric character Which can be expressed as the regex: `[a-z0-9]([-a-z0-9]*[a-z0-9])?`, with a maximum length of 63 characters.", + "location": "query", + "type": "string" + }, + "parent": { + "description": "Required. The parent (project and location) where the Memberships will be created. Specified in the format `projects/*/locations/*`.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+$", + "required": true, + "type": "string" + }, + "requestId": { + "description": "Optional. A request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. The server will guarantee that for at least 60 minutes after the first request. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).", + "location": "query", + "type": "string" + } + }, + "path": "v1beta/{+parent}/memberships", + "request": { + "$ref": "Membership" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "delete": { + "description": "Removes a Membership. **This is currently only supported for GKE clusters on Google Cloud**. To unregister other clusters, follow the instructions at https://cloud.google.com/anthos/multicluster-management/connect/unregistering-a-cluster.", + "flatPath": "v1beta/projects/{projectsId}/locations/{locationsId}/memberships/{membershipsId}", + "httpMethod": "DELETE", + "id": "gkehub.projects.locations.memberships.delete", + "parameterOrder": [ + "name" + ], + "parameters": { + "force": { + "description": "Optional. If set to true, any subresource from this Membership will also be deleted. Otherwise, the request will only work if the Membership has no subresource.", + "location": "query", + "type": "boolean" + }, + "name": { + "description": "Required. The Membership resource name in the format `projects/*/locations/*/memberships/*`.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/memberships/[^/]+$", + "required": true, + "type": "string" + }, + "requestId": { + "description": "Optional. A request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. The server will guarantee that for at least 60 minutes after the first request. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).", + "location": "query", + "type": "string" + } + }, + "path": "v1beta/{+name}", + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "generateConnectManifest": { + "description": "Generates the manifest for deployment of the GKE connect agent. **This method is used internally by Google-provided libraries.** Most clients should not need to call this method directly.", + "flatPath": "v1beta/projects/{projectsId}/locations/{locationsId}/memberships/{membershipsId}:generateConnectManifest", + "httpMethod": "GET", + "id": "gkehub.projects.locations.memberships.generateConnectManifest", + "parameterOrder": [ + "name" + ], + "parameters": { + "imagePullSecretContent": { + "description": "Optional. The image pull secret content for the registry, if not public.", + "format": "byte", + "location": "query", + "type": "string" + }, + "isUpgrade": { + "description": "Optional. If true, generate the resources for upgrade only. Some resources generated only for installation (e.g. secrets) will be excluded.", + "location": "query", + "type": "boolean" + }, + "name": { + "description": "Required. The Membership resource name the Agent will associate with, in the format `projects/*/locations/*/memberships/*`.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/memberships/[^/]+$", + "required": true, + "type": "string" + }, + "namespace": { + "description": "Optional. Namespace for GKE Connect agent resources. Defaults to `gke-connect`. The Connect Agent is authorized automatically when run in the default namespace. Otherwise, explicit authorization must be granted with an additional IAM binding.", + "location": "query", + "type": "string" + }, + "proxy": { + "description": "Optional. URI of a proxy if connectivity from the agent to gkeconnect.googleapis.com requires the use of a proxy. Format must be in the form `http(s)://{proxy_address}`, depending on the HTTP/HTTPS protocol supported by the proxy. This will direct the connect agent's outbound traffic through a HTTP(S) proxy.", + "format": "byte", + "location": "query", + "type": "string" + }, + "registry": { + "description": "Optional. The registry to fetch the connect agent image from. Defaults to gcr.io/gkeconnect.", + "location": "query", + "type": "string" + }, + "version": { + "description": "Optional. The Connect agent version to use. Defaults to the most current version.", + "location": "query", + "type": "string" + } + }, + "path": "v1beta/{+name}:generateConnectManifest", + "response": { + "$ref": "GenerateConnectManifestResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "get": { + "description": "Gets the details of a Membership.", + "flatPath": "v1beta/projects/{projectsId}/locations/{locationsId}/memberships/{membershipsId}", + "httpMethod": "GET", + "id": "gkehub.projects.locations.memberships.get", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. The Membership resource name in the format `projects/*/locations/*/memberships/*`.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/memberships/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1beta/{+name}", + "response": { + "$ref": "Membership" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, "getIamPolicy": { "description": "Gets the access control policy for a resource. Returns an empty policy if the resource exists and does not have a policy set.", "flatPath": "v1beta/projects/{projectsId}/locations/{locationsId}/memberships/{membershipsId}:getIamPolicy", @@ -684,6 +839,91 @@ "https://www.googleapis.com/auth/cloud-platform" ] }, + "list": { + "description": "Lists Memberships in a given project and location.", + "flatPath": "v1beta/projects/{projectsId}/locations/{locationsId}/memberships", + "httpMethod": "GET", + "id": "gkehub.projects.locations.memberships.list", + "parameterOrder": [ + "parent" + ], + "parameters": { + "filter": { + "description": "Optional. Lists Memberships that match the filter expression, following the syntax outlined in https://google.aip.dev/160. Examples: - Name is `bar` in project `foo-proj` and location `global`: name = \"projects/foo-proj/locations/global/membership/bar\" - Memberships that have a label called `foo`: labels.foo:* - Memberships that have a label called `foo` whose value is `bar`: labels.foo = bar - Memberships in the CREATING state: state = CREATING", + "location": "query", + "type": "string" + }, + "orderBy": { + "description": "Optional. One or more fields to compare and use to sort the output. See https://google.aip.dev/132#ordering.", + "location": "query", + "type": "string" + }, + "pageSize": { + "description": "Optional. When requesting a 'page' of resources, `page_size` specifies number of resources to return. If unspecified or set to 0, all resources will be returned.", + "format": "int32", + "location": "query", + "type": "integer" + }, + "pageToken": { + "description": "Optional. Token returned by previous call to `ListMemberships` which specifies the position in the list from where to continue listing the resources.", + "location": "query", + "type": "string" + }, + "parent": { + "description": "Required. The parent (project and location) where the Memberships will be listed. Specified in the format `projects/*/locations/*`. `projects/*/locations/-` list memberships in all the regions.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1beta/{+parent}/memberships", + "response": { + "$ref": "ListMembershipsResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "patch": { + "description": "Updates an existing Membership.", + "flatPath": "v1beta/projects/{projectsId}/locations/{locationsId}/memberships/{membershipsId}", + "httpMethod": "PATCH", + "id": "gkehub.projects.locations.memberships.patch", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. The Membership resource name in the format `projects/*/locations/*/memberships/*`.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/memberships/[^/]+$", + "required": true, + "type": "string" + }, + "requestId": { + "description": "Optional. A request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. The server will guarantee that for at least 60 minutes after the first request. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).", + "location": "query", + "type": "string" + }, + "updateMask": { + "description": "Required. Mask of fields to update.", + "format": "google-fieldmask", + "location": "query", + "type": "string" + } + }, + "path": "v1beta/{+name}", + "request": { + "$ref": "Membership" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, "setIamPolicy": { "description": "Sets the access control policy on the specified resource. Replaces any existing policy. Can return `NOT_FOUND`, `INVALID_ARGUMENT`, and `PERMISSION_DENIED` errors.", "flatPath": "v1beta/projects/{projectsId}/locations/{locationsId}/memberships/{membershipsId}:setIamPolicy", @@ -2100,7 +2340,7 @@ } } }, - "revision": "20230914", + "revision": "20230929", "rootUrl": "https://gkehub.googleapis.com/", "schemas": { "AnthosObservabilityFeatureSpec": { @@ -2150,6 +2390,17 @@ }, "type": "object" }, + "ApplianceCluster": { + "description": "ApplianceCluster contains information specific to GDC Edge Appliance Clusters.", + "id": "ApplianceCluster", + "properties": { + "resourceLink": { + "description": "Immutable. Self-link of the Google Cloud resource for the Appliance Cluster. For example: //transferappliance.googleapis.com/projects/my-project/locations/us-west1-a/appliances/my-appliance", + "type": "string" + } + }, + "type": "object" + }, "AuditConfig": { "description": "Specifies the audit configuration for a service. The configuration determines which permission types are logged, and what identities, if any, are exempted from logging. An AuditConfig must have one or more AuditLogConfigs. If there are AuditConfigs for both `allServices` and a specific service, the union of the two AuditConfigs is used for that service: the log_types specified in each AuditConfig are enabled, and the exempted_members in each AuditLogConfig are exempted. Example Policy with multiple AuditConfigs: { \"audit_configs\": [ { \"service\": \"allServices\", \"audit_log_configs\": [ { \"log_type\": \"DATA_READ\", \"exempted_members\": [ \"user:jose@example.com\" ] }, { \"log_type\": \"DATA_WRITE\" }, { \"log_type\": \"ADMIN_READ\" } ] }, { \"service\": \"sampleservice.googleapis.com\", \"audit_log_configs\": [ { \"log_type\": \"DATA_READ\" }, { \"log_type\": \"DATA_WRITE\", \"exempted_members\": [ \"user:aliya@example.com\" ] } ] } ] } For sampleservice, this policy enables DATA_READ, DATA_WRITE and ADMIN_READ logging. It also exempts `jose@example.com` from DATA_READ logging, and `aliya@example.com` from DATA_WRITE logging.", "id": "AuditConfig", @@ -2198,6 +2449,32 @@ }, "type": "object" }, + "Authority": { + "description": "Authority encodes how Google will recognize identities from this Membership. See the workload identity documentation for more details: https://cloud.google.com/kubernetes-engine/docs/how-to/workload-identity", + "id": "Authority", + "properties": { + "identityProvider": { + "description": "Output only. An identity provider that reflects the `issuer` in the workload identity pool.", + "readOnly": true, + "type": "string" + }, + "issuer": { + "description": "Optional. A JSON Web Token (JWT) issuer URI. `issuer` must start with `https://` and be a valid URL with length \u003c2000 characters, it must use `location` rather than `zone` for GKE clusters. If set, then Google will allow valid OIDC tokens from this issuer to authenticate within the workload_identity_pool. OIDC discovery will be performed on this URI to validate tokens from the issuer. Clearing `issuer` disables Workload Identity. `issuer` cannot be directly modified; it must be cleared (and Workload Identity disabled) before using a new issuer (and re-enabling Workload Identity).", + "type": "string" + }, + "oidcJwks": { + "description": "Optional. OIDC verification keys for this Membership in JWKS format (RFC 7517). When this field is set, OIDC discovery will NOT be performed on `issuer`, and instead OIDC tokens will be validated using this field.", + "format": "byte", + "type": "string" + }, + "workloadIdentityPool": { + "description": "Output only. The name of the workload identity pool in which `issuer` will be recognized. There is a single Workload Identity Pool per Hub that is shared between all Memberships that belong to that Hub. For a Hub hosted in {PROJECT_ID}, the workload pool format is `{PROJECT_ID}.hub.id.goog`, although this is subject to change in newer versions of this API.", + "readOnly": true, + "type": "string" + } + }, + "type": "object" + }, "Binding": { "description": "Associates `members`, or principals, with a `role`.", "id": "Binding", @@ -3154,6 +3431,32 @@ }, "type": "object" }, + "ConnectAgentResource": { + "description": "ConnectAgentResource represents a Kubernetes resource manifest for Connect Agent deployment.", + "id": "ConnectAgentResource", + "properties": { + "manifest": { + "description": "YAML manifest of the resource.", + "type": "string" + }, + "type": { + "$ref": "TypeMeta", + "description": "Kubernetes type of the resource." + } + }, + "type": "object" + }, + "EdgeCluster": { + "description": "EdgeCluster contains information specific to Google Edge Clusters.", + "id": "EdgeCluster", + "properties": { + "resourceLink": { + "description": "Immutable. Self-link of the Google Cloud resource for the Edge Cluster. For example: //edgecontainer.googleapis.com/projects/my-project/locations/us-west1-a/clusters/my-cluster", + "type": "string" + } + }, + "type": "object" + }, "Empty": { "description": "A generic empty message that you can re-use to avoid defining duplicated empty messages in your APIs. A typical example is to use it as the request or the response type of an API method. For instance: service Foo { rpc Bar(google.protobuf.Empty) returns (google.protobuf.Empty); }", "id": "Empty", @@ -3547,6 +3850,20 @@ }, "type": "object" }, + "GenerateConnectManifestResponse": { + "description": "GenerateConnectManifestResponse contains manifest information for installing/upgrading a Connect agent.", + "id": "GenerateConnectManifestResponse", + "properties": { + "manifest": { + "description": "The ordered list of Kubernetes resources that need to be applied to the cluster for GKE Connect agent installation/upgrade.", + "items": { + "$ref": "ConnectAgentResource" + }, + "type": "array" + } + }, + "type": "object" + }, "GenerateMembershipRBACRoleBindingYAMLResponse": { "description": "Response for GenerateRBACRoleBindingYAML.", "id": "GenerateMembershipRBACRoleBindingYAMLResponse", @@ -3558,6 +3875,22 @@ }, "type": "object" }, + "GkeCluster": { + "description": "GkeCluster contains information specific to GKE clusters.", + "id": "GkeCluster", + "properties": { + "clusterMissing": { + "description": "Output only. If cluster_missing is set then it denotes that the GKE cluster no longer exists in the GKE Control Plane.", + "readOnly": true, + "type": "boolean" + }, + "resourceLink": { + "description": "Immutable. Self-link of the Google Cloud resource for the GKE cluster. For example: //container.googleapis.com/projects/my-project/locations/us-west1-a/clusters/my-cluster Zonal clusters are also supported.", + "type": "string" + } + }, + "type": "object" + }, "GoogleRpcStatus": { "description": "The `Status` type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by [gRPC](https://github.com/grpc). Each `Status` message contains three pieces of data: error code, error message, and error details. You can find out more about this error model and how to work with it in the [API Design Guide](https://cloud.google.com/apis/design/errors).", "id": "GoogleRpcStatus", @@ -3764,6 +4097,78 @@ }, "type": "object" }, + "KubernetesMetadata": { + "description": "KubernetesMetadata provides informational metadata for Memberships representing Kubernetes clusters.", + "id": "KubernetesMetadata", + "properties": { + "kubernetesApiServerVersion": { + "description": "Output only. Kubernetes API server version string as reported by `/version`.", + "readOnly": true, + "type": "string" + }, + "memoryMb": { + "description": "Output only. The total memory capacity as reported by the sum of all Kubernetes nodes resources, defined in MB.", + "format": "int32", + "readOnly": true, + "type": "integer" + }, + "nodeCount": { + "description": "Output only. Node count as reported by Kubernetes nodes resources.", + "format": "int32", + "readOnly": true, + "type": "integer" + }, + "nodeProviderId": { + "description": "Output only. Node providerID as reported by the first node in the list of nodes on the Kubernetes endpoint. On Kubernetes platforms that support zero-node clusters (like GKE-on-GCP), the node_count will be zero and the node_provider_id will be empty.", + "readOnly": true, + "type": "string" + }, + "updateTime": { + "description": "Output only. The time at which these details were last updated. This update_time is different from the Membership-level update_time since EndpointDetails are updated internally for API consumers.", + "format": "google-datetime", + "readOnly": true, + "type": "string" + }, + "vcpuCount": { + "description": "Output only. vCPU count as reported by Kubernetes nodes resources.", + "format": "int32", + "readOnly": true, + "type": "integer" + } + }, + "type": "object" + }, + "KubernetesResource": { + "description": "KubernetesResource contains the YAML manifests and configuration for Membership Kubernetes resources in the cluster. After CreateMembership or UpdateMembership, these resources should be re-applied in the cluster.", + "id": "KubernetesResource", + "properties": { + "connectResources": { + "description": "Output only. The Kubernetes resources for installing the GKE Connect agent This field is only populated in the Membership returned from a successful long-running operation from CreateMembership or UpdateMembership. It is not populated during normal GetMembership or ListMemberships requests. To get the resource manifest after the initial registration, the caller should make a UpdateMembership call with an empty field mask.", + "items": { + "$ref": "ResourceManifest" + }, + "readOnly": true, + "type": "array" + }, + "membershipCrManifest": { + "description": "Input only. The YAML representation of the Membership CR. This field is ignored for GKE clusters where Hub can read the CR directly. Callers should provide the CR that is currently present in the cluster during CreateMembership or UpdateMembership, or leave this field empty if none exists. The CR manifest is used to validate the cluster has not been registered with another Membership.", + "type": "string" + }, + "membershipResources": { + "description": "Output only. Additional Kubernetes resources that need to be applied to the cluster after Membership creation, and after every update. This field is only populated in the Membership returned from a successful long-running operation from CreateMembership or UpdateMembership. It is not populated during normal GetMembership or ListMemberships requests. To get the resource manifest after the initial registration, the caller should make a UpdateMembership call with an empty field mask.", + "items": { + "$ref": "ResourceManifest" + }, + "readOnly": true, + "type": "array" + }, + "resourceOptions": { + "$ref": "ResourceOptions", + "description": "Optional. Options for Kubernetes resource generation." + } + }, + "type": "object" + }, "ListFeaturesResponse": { "description": "Response message for the `GkeHub.ListFeatures` method.", "id": "ListFeaturesResponse", @@ -3854,6 +4259,31 @@ }, "type": "object" }, + "ListMembershipsResponse": { + "description": "Response message for the `GkeHub.ListMemberships` method.", + "id": "ListMembershipsResponse", + "properties": { + "nextPageToken": { + "description": "A token to request the next page of resources from the `ListMemberships` method. The value of an empty string means that there are no more resources to return.", + "type": "string" + }, + "resources": { + "description": "The list of matching Memberships.", + "items": { + "$ref": "Membership" + }, + "type": "array" + }, + "unreachable": { + "description": "List of locations that could not be reached while fetching this list.", + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, "ListNamespacesResponse": { "description": "List of fleet namespaces.", "id": "ListNamespacesResponse", @@ -3996,6 +4426,80 @@ }, "type": "object" }, + "Membership": { + "description": "Membership contains information about a member cluster.", + "id": "Membership", + "properties": { + "authority": { + "$ref": "Authority", + "description": "Optional. How to identify workloads from this Membership. See the documentation on Workload Identity for more details: https://cloud.google.com/kubernetes-engine/docs/how-to/workload-identity" + }, + "createTime": { + "description": "Output only. When the Membership was created.", + "format": "google-datetime", + "readOnly": true, + "type": "string" + }, + "deleteTime": { + "description": "Output only. When the Membership was deleted.", + "format": "google-datetime", + "readOnly": true, + "type": "string" + }, + "description": { + "description": "Output only. Description of this membership, limited to 63 characters. Must match the regex: `a-zA-Z0-9*` This field is present for legacy purposes.", + "readOnly": true, + "type": "string" + }, + "endpoint": { + "$ref": "MembershipEndpoint", + "description": "Optional. Endpoint information to reach this member." + }, + "externalId": { + "description": "Optional. An externally-generated and managed ID for this Membership. This ID may be modified after creation, but this is not recommended. The ID must match the regex: `a-zA-Z0-9*` If this Membership represents a Kubernetes cluster, this value should be set to the UID of the `kube-system` namespace object.", + "type": "string" + }, + "labels": { + "additionalProperties": { + "type": "string" + }, + "description": "Optional. Labels for this membership.", + "type": "object" + }, + "lastConnectionTime": { + "description": "Output only. For clusters using Connect, the timestamp of the most recent connection established with Google Cloud. This time is updated every several minutes, not continuously. For clusters that do not use GKE Connect, or that have never connected successfully, this field will be unset.", + "format": "google-datetime", + "readOnly": true, + "type": "string" + }, + "monitoringConfig": { + "$ref": "MonitoringConfig", + "description": "Optional. The monitoring config information for this membership." + }, + "name": { + "description": "Output only. The full, unique name of this Membership resource in the format `projects/*/locations/*/memberships/{membership_id}`, set during creation. `membership_id` must be a valid RFC 1123 compliant DNS label: 1. At most 63 characters in length 2. It must consist of lower case alphanumeric characters or `-` 3. It must start and end with an alphanumeric character Which can be expressed as the regex: `[a-z0-9]([-a-z0-9]*[a-z0-9])?`, with a maximum length of 63 characters.", + "readOnly": true, + "type": "string" + }, + "state": { + "$ref": "MembershipState", + "description": "Output only. State of the Membership resource.", + "readOnly": true + }, + "uniqueId": { + "description": "Output only. Google-generated UUID for this resource. This is unique across all Membership resources. If a Membership resource is deleted and another resource with the same name is created, it gets a different unique_id.", + "readOnly": true, + "type": "string" + }, + "updateTime": { + "description": "Output only. When the Membership was last updated.", + "format": "google-datetime", + "readOnly": true, + "type": "string" + } + }, + "type": "object" + }, "MembershipBinding": { "description": "MembershipBinding is a subresource of a Membership, representing what Fleet Scopes (or other, future Fleet resources) a Membership is bound to.", "id": "MembershipBinding", @@ -4072,6 +4576,47 @@ }, "type": "object" }, + "MembershipEndpoint": { + "description": "MembershipEndpoint contains information needed to contact a Kubernetes API, endpoint and any additional Kubernetes metadata.", + "id": "MembershipEndpoint", + "properties": { + "applianceCluster": { + "$ref": "ApplianceCluster", + "description": "Optional. Specific information for a GDC Edge Appliance cluster." + }, + "edgeCluster": { + "$ref": "EdgeCluster", + "description": "Optional. Specific information for a Google Edge cluster." + }, + "gkeCluster": { + "$ref": "GkeCluster", + "description": "Optional. Specific information for a GKE-on-GCP cluster." + }, + "googleManaged": { + "description": "Output only. Whether the lifecycle of this membership is managed by a google cluster platform service.", + "readOnly": true, + "type": "boolean" + }, + "kubernetesMetadata": { + "$ref": "KubernetesMetadata", + "description": "Output only. Useful Kubernetes-specific metadata.", + "readOnly": true + }, + "kubernetesResource": { + "$ref": "KubernetesResource", + "description": "Optional. The in-cluster Kubernetes Resources that should be applied for a correctly registered cluster, in the steady state. These resources: * Ensure that the cluster is exclusively registered to one and only one Hub Membership. * Propagate Workload Pool Information available in the Membership Authority field. * Ensure proper initial configuration of default Hub Features." + }, + "multiCloudCluster": { + "$ref": "MultiCloudCluster", + "description": "Optional. Specific information for a GKE Multi-Cloud cluster." + }, + "onPremCluster": { + "$ref": "OnPremCluster", + "description": "Optional. Specific information for a GKE On-Prem cluster. An onprem user-cluster who has no resourceLink is not allowed to use this field, it should have a nil \"type\" instead." + } + }, + "type": "object" + }, "MembershipFeatureSpec": { "description": "MembershipFeatureSpec contains configuration information for a single Membership. NOTE: Please use snake case in your feature name.", "id": "MembershipFeatureSpec", @@ -4175,6 +4720,34 @@ }, "type": "object" }, + "MembershipState": { + "description": "MembershipState describes the state of a Membership resource.", + "id": "MembershipState", + "properties": { + "code": { + "description": "Output only. The current state of the Membership resource.", + "enum": [ + "CODE_UNSPECIFIED", + "CREATING", + "READY", + "DELETING", + "UPDATING", + "SERVICE_UPDATING" + ], + "enumDescriptions": [ + "The code is not set.", + "The cluster is being registered.", + "The cluster is registered.", + "The cluster is being unregistered.", + "The Membership is being updated.", + "The Membership is being updated by the Hub Service." + ], + "readOnly": true, + "type": "string" + } + }, + "type": "object" + }, "MeteringMembershipState": { "description": "**Metering**: Per-Membership Feature State.", "id": "MeteringMembershipState", @@ -4192,6 +4765,49 @@ }, "type": "object" }, + "MonitoringConfig": { + "description": "This field informs Fleet-based applications/services/UIs with the necessary information for where each underlying Cluster reports its metrics.", + "id": "MonitoringConfig", + "properties": { + "cluster": { + "description": "Immutable. Cluster name used to report metrics. For Anthos on VMWare/Baremetal, it would be in format `memberClusters/cluster_name`; And for Anthos on MultiCloud, it would be in format `{azureClusters, awsClusters}/cluster_name`.", + "type": "string" + }, + "clusterHash": { + "description": "Immutable. Cluster hash, this is a unique string generated by google code, which does not contain any PII, which we can use to reference the cluster. This is expected to be created by the monitoring stack and persisted into the Cluster object as well as to GKE-Hub.", + "type": "string" + }, + "kubernetesMetricsPrefix": { + "description": "Kubernetes system metrics, if available, are written to this prefix. This defaults to kubernetes.io for GKE, and kubernetes.io/anthos for Anthos eventually. Noted: Anthos MultiCloud will have kubernetes.io prefix today but will migration to be under kubernetes.io/anthos", + "type": "string" + }, + "location": { + "description": "Immutable. Location used to report Metrics", + "type": "string" + }, + "projectId": { + "description": "Immutable. Project used to report Metrics", + "type": "string" + } + }, + "type": "object" + }, + "MultiCloudCluster": { + "description": "MultiCloudCluster contains information specific to GKE Multi-Cloud clusters.", + "id": "MultiCloudCluster", + "properties": { + "clusterMissing": { + "description": "Output only. If cluster_missing is set then it denotes that API(gkemulticloud.googleapis.com) resource for this GKE Multi-Cloud cluster no longer exists.", + "readOnly": true, + "type": "boolean" + }, + "resourceLink": { + "description": "Immutable. Self-link of the Google Cloud resource for the GKE Multi-Cloud cluster. For example: //gkemulticloud.googleapis.com/projects/my-project/locations/us-west1-a/awsClusters/my-cluster //gkemulticloud.googleapis.com/projects/my-project/locations/us-west1-a/azureClusters/my-cluster //gkemulticloud.googleapis.com/projects/my-project/locations/us-west1-a/attachedClusters/my-cluster", + "type": "string" + } + }, + "type": "object" + }, "MultiClusterIngressFeatureSpec": { "description": "**Multi-cluster Ingress**: The configuration for the MultiClusterIngress feature.", "id": "MultiClusterIngressFeatureSpec", @@ -4301,6 +4917,44 @@ }, "type": "object" }, + "OnPremCluster": { + "description": "OnPremCluster contains information specific to GKE On-Prem clusters.", + "id": "OnPremCluster", + "properties": { + "adminCluster": { + "description": "Immutable. Whether the cluster is an admin cluster.", + "type": "boolean" + }, + "clusterMissing": { + "description": "Output only. If cluster_missing is set then it denotes that API(gkeonprem.googleapis.com) resource for this GKE On-Prem cluster no longer exists.", + "readOnly": true, + "type": "boolean" + }, + "clusterType": { + "description": "Immutable. The on prem cluster's type.", + "enum": [ + "CLUSTERTYPE_UNSPECIFIED", + "BOOTSTRAP", + "HYBRID", + "STANDALONE", + "USER" + ], + "enumDescriptions": [ + "The ClusterType is not set.", + "The ClusterType is bootstrap cluster.", + "The ClusterType is baremetal hybrid cluster.", + "The ClusterType is baremetal standalone cluster.", + "The ClusterType is user cluster." + ], + "type": "string" + }, + "resourceLink": { + "description": "Immutable. Self-link of the Google Cloud resource for the GKE On-Prem cluster. For example: //gkeonprem.googleapis.com/projects/my-project/locations/us-west1-a/vmwareClusters/my-cluster //gkeonprem.googleapis.com/projects/my-project/locations/us-west1-a/bareMetalClusters/my-cluster", + "type": "string" + } + }, + "type": "object" + }, "Operation": { "description": "This resource represents a long-running operation that is the result of a network API call.", "id": "Operation", @@ -4880,6 +5534,40 @@ }, "type": "object" }, + "ResourceManifest": { + "description": "ResourceManifest represents a single Kubernetes resource to be applied to the cluster.", + "id": "ResourceManifest", + "properties": { + "clusterScoped": { + "description": "Whether the resource provided in the manifest is `cluster_scoped`. If unset, the manifest is assumed to be namespace scoped. This field is used for REST mapping when applying the resource in a cluster.", + "type": "boolean" + }, + "manifest": { + "description": "YAML manifest of the resource.", + "type": "string" + } + }, + "type": "object" + }, + "ResourceOptions": { + "description": "ResourceOptions represent options for Kubernetes resource generation.", + "id": "ResourceOptions", + "properties": { + "connectVersion": { + "description": "Optional. The Connect agent version to use for connect_resources. Defaults to the latest GKE Connect version. The version must be a currently supported version, obsolete versions will be rejected.", + "type": "string" + }, + "k8sVersion": { + "description": "Optional. Major version of the Kubernetes cluster. This is only used to determine which version to use for the CustomResourceDefinition resources, `apiextensions/v1beta1` or`apiextensions/v1`.", + "type": "string" + }, + "v1beta1Crd": { + "description": "Optional. Use `apiextensions/v1beta1` instead of `apiextensions/v1` for CustomResourceDefinition resources. This option should be set for clusters with Kubernetes apiserver versions \u003c1.16.", + "type": "boolean" + } + }, + "type": "object" + }, "Role": { "description": "Role is the type for Kubernetes roles", "id": "Role", @@ -4909,10 +5597,6 @@ "description": "Scope represents a Scope in a Fleet.", "id": "Scope", "properties": { - "allMemberships": { - "description": "If true, all Memberships in the Fleet bind to this Scope.", - "type": "boolean" - }, "createTime": { "description": "Output only. When the scope was created.", "format": "google-datetime", @@ -5220,6 +5904,21 @@ } }, "type": "object" + }, + "TypeMeta": { + "description": "TypeMeta is the type information needed for content unmarshalling of Kubernetes resources in the manifest.", + "id": "TypeMeta", + "properties": { + "apiVersion": { + "description": "APIVersion of the resource (e.g. v1).", + "type": "string" + }, + "kind": { + "description": "Kind of the resource (e.g. Deployment).", + "type": "string" + } + }, + "type": "object" } }, "servicePath": "", diff --git a/gkehub/v1beta/gkehub-gen.go b/gkehub/v1beta/gkehub-gen.go index f93d46e1953..254879b494c 100644 --- a/gkehub/v1beta/gkehub-gen.go +++ b/gkehub/v1beta/gkehub-gen.go @@ -446,6 +446,38 @@ func (s *AppDevExperienceFeatureState) MarshalJSON() ([]byte, error) { return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) } +// ApplianceCluster: ApplianceCluster contains information specific to +// GDC Edge Appliance Clusters. +type ApplianceCluster struct { + // ResourceLink: Immutable. Self-link of the Google Cloud resource for + // the Appliance Cluster. For example: + // //transferappliance.googleapis.com/projects/my-project/locations/us-we + // st1-a/appliances/my-appliance + ResourceLink string `json:"resourceLink,omitempty"` + + // ForceSendFields is a list of field names (e.g. "ResourceLink") 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. "ResourceLink") 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 *ApplianceCluster) MarshalJSON() ([]byte, error) { + type NoMethod ApplianceCluster + raw := NoMethod(*s) + return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) +} + // AuditConfig: Specifies the audit configuration for a service. The // configuration determines which permission types are logged, and what // identities, if any, are exempted from logging. An AuditConfig must @@ -543,6 +575,65 @@ func (s *AuditLogConfig) MarshalJSON() ([]byte, error) { return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) } +// Authority: Authority encodes how Google will recognize identities +// from this Membership. See the workload identity documentation for +// more details: +// https://cloud.google.com/kubernetes-engine/docs/how-to/workload-identity +type Authority struct { + // IdentityProvider: Output only. An identity provider that reflects the + // `issuer` in the workload identity pool. + IdentityProvider string `json:"identityProvider,omitempty"` + + // Issuer: Optional. A JSON Web Token (JWT) issuer URI. `issuer` must + // start with `https://` and be a valid URL with length <2000 + // characters, it must use `location` rather than `zone` for GKE + // clusters. If set, then Google will allow valid OIDC tokens from this + // issuer to authenticate within the workload_identity_pool. OIDC + // discovery will be performed on this URI to validate tokens from the + // issuer. Clearing `issuer` disables Workload Identity. `issuer` cannot + // be directly modified; it must be cleared (and Workload Identity + // disabled) before using a new issuer (and re-enabling Workload + // Identity). + Issuer string `json:"issuer,omitempty"` + + // OidcJwks: Optional. OIDC verification keys for this Membership in + // JWKS format (RFC 7517). When this field is set, OIDC discovery will + // NOT be performed on `issuer`, and instead OIDC tokens will be + // validated using this field. + OidcJwks string `json:"oidcJwks,omitempty"` + + // WorkloadIdentityPool: Output only. The name of the workload identity + // pool in which `issuer` will be recognized. There is a single Workload + // Identity Pool per Hub that is shared between all Memberships that + // belong to that Hub. For a Hub hosted in {PROJECT_ID}, the workload + // pool format is `{PROJECT_ID}.hub.id.goog`, although this is subject + // to change in newer versions of this API. + WorkloadIdentityPool string `json:"workloadIdentityPool,omitempty"` + + // ForceSendFields is a list of field names (e.g. "IdentityProvider") 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. "IdentityProvider") 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 *Authority) MarshalJSON() ([]byte, error) { + type NoMethod Authority + raw := NoMethod(*s) + return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) +} + // Binding: Associates `members`, or principals, with a `role`. type Binding struct { // Condition: The condition that is associated with this binding. If the @@ -1999,6 +2090,70 @@ func (s *ConfigManagementSyncState) MarshalJSON() ([]byte, error) { return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) } +// ConnectAgentResource: ConnectAgentResource represents a Kubernetes +// resource manifest for Connect Agent deployment. +type ConnectAgentResource struct { + // Manifest: YAML manifest of the resource. + Manifest string `json:"manifest,omitempty"` + + // Type: Kubernetes type of the resource. + Type *TypeMeta `json:"type,omitempty"` + + // ForceSendFields is a list of field names (e.g. "Manifest") 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. "Manifest") 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 *ConnectAgentResource) MarshalJSON() ([]byte, error) { + type NoMethod ConnectAgentResource + raw := NoMethod(*s) + return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) +} + +// EdgeCluster: EdgeCluster contains information specific to Google Edge +// Clusters. +type EdgeCluster struct { + // ResourceLink: Immutable. Self-link of the Google Cloud resource for + // the Edge Cluster. For example: + // //edgecontainer.googleapis.com/projects/my-project/locations/us-west1- + // a/clusters/my-cluster + ResourceLink string `json:"resourceLink,omitempty"` + + // ForceSendFields is a list of field names (e.g. "ResourceLink") 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. "ResourceLink") 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 *EdgeCluster) MarshalJSON() ([]byte, error) { + type NoMethod EdgeCluster + raw := NoMethod(*s) + return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) +} + // Empty: A generic empty message that you can re-use to avoid defining // duplicated empty messages in your APIs. A typical example is to use // it as the request or the response type of an API method. For @@ -2643,6 +2798,41 @@ func (s *FleetObservabilityRoutingConfig) MarshalJSON() ([]byte, error) { return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) } +// GenerateConnectManifestResponse: GenerateConnectManifestResponse +// contains manifest information for installing/upgrading a Connect +// agent. +type GenerateConnectManifestResponse struct { + // Manifest: The ordered list of Kubernetes resources that need to be + // applied to the cluster for GKE Connect agent installation/upgrade. + Manifest []*ConnectAgentResource `json:"manifest,omitempty"` + + // ServerResponse contains the HTTP response code and headers from the + // server. + googleapi.ServerResponse `json:"-"` + + // ForceSendFields is a list of field names (e.g. "Manifest") 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. "Manifest") 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 *GenerateConnectManifestResponse) MarshalJSON() ([]byte, error) { + type NoMethod GenerateConnectManifestResponse + raw := NoMethod(*s) + return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) +} + // GenerateMembershipRBACRoleBindingYAMLResponse: Response for // GenerateRBACRoleBindingYAML. type GenerateMembershipRBACRoleBindingYAMLResponse struct { @@ -2677,6 +2867,43 @@ func (s *GenerateMembershipRBACRoleBindingYAMLResponse) MarshalJSON() ([]byte, e return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) } +// GkeCluster: GkeCluster contains information specific to GKE clusters. +type GkeCluster struct { + // ClusterMissing: Output only. If cluster_missing is set then it + // denotes that the GKE cluster no longer exists in the GKE Control + // Plane. + ClusterMissing bool `json:"clusterMissing,omitempty"` + + // ResourceLink: Immutable. Self-link of the Google Cloud resource for + // the GKE cluster. For example: + // //container.googleapis.com/projects/my-project/locations/us-west1-a/cl + // usters/my-cluster Zonal clusters are also supported. + ResourceLink string `json:"resourceLink,omitempty"` + + // ForceSendFields is a list of field names (e.g. "ClusterMissing") 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. "ClusterMissing") 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 *GkeCluster) MarshalJSON() ([]byte, error) { + type NoMethod GkeCluster + raw := NoMethod(*s) + return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) +} + // GoogleRpcStatus: The `Status` type defines a logical error model that // is suitable for different programming environments, including REST // APIs and RPC APIs. It is used by gRPC (https://github.com/grpc). Each @@ -2985,6 +3212,122 @@ func (s *IdentityServiceOidcConfig) MarshalJSON() ([]byte, error) { return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) } +// KubernetesMetadata: KubernetesMetadata provides informational +// metadata for Memberships representing Kubernetes clusters. +type KubernetesMetadata struct { + // KubernetesApiServerVersion: Output only. Kubernetes API server + // version string as reported by `/version`. + KubernetesApiServerVersion string `json:"kubernetesApiServerVersion,omitempty"` + + // MemoryMb: Output only. The total memory capacity as reported by the + // sum of all Kubernetes nodes resources, defined in MB. + MemoryMb int64 `json:"memoryMb,omitempty"` + + // NodeCount: Output only. Node count as reported by Kubernetes nodes + // resources. + NodeCount int64 `json:"nodeCount,omitempty"` + + // NodeProviderId: Output only. Node providerID as reported by the first + // node in the list of nodes on the Kubernetes endpoint. On Kubernetes + // platforms that support zero-node clusters (like GKE-on-GCP), the + // node_count will be zero and the node_provider_id will be empty. + NodeProviderId string `json:"nodeProviderId,omitempty"` + + // UpdateTime: Output only. The time at which these details were last + // updated. This update_time is different from the Membership-level + // update_time since EndpointDetails are updated internally for API + // consumers. + UpdateTime string `json:"updateTime,omitempty"` + + // VcpuCount: Output only. vCPU count as reported by Kubernetes nodes + // resources. + VcpuCount int64 `json:"vcpuCount,omitempty"` + + // ForceSendFields is a list of field names (e.g. + // "KubernetesApiServerVersion") 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. + // "KubernetesApiServerVersion") 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 *KubernetesMetadata) MarshalJSON() ([]byte, error) { + type NoMethod KubernetesMetadata + raw := NoMethod(*s) + return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) +} + +// KubernetesResource: KubernetesResource contains the YAML manifests +// and configuration for Membership Kubernetes resources in the cluster. +// After CreateMembership or UpdateMembership, these resources should be +// re-applied in the cluster. +type KubernetesResource struct { + // ConnectResources: Output only. The Kubernetes resources for + // installing the GKE Connect agent This field is only populated in the + // Membership returned from a successful long-running operation from + // CreateMembership or UpdateMembership. It is not populated during + // normal GetMembership or ListMemberships requests. To get the resource + // manifest after the initial registration, the caller should make a + // UpdateMembership call with an empty field mask. + ConnectResources []*ResourceManifest `json:"connectResources,omitempty"` + + // MembershipCrManifest: Input only. The YAML representation of the + // Membership CR. This field is ignored for GKE clusters where Hub can + // read the CR directly. Callers should provide the CR that is currently + // present in the cluster during CreateMembership or UpdateMembership, + // or leave this field empty if none exists. The CR manifest is used to + // validate the cluster has not been registered with another Membership. + MembershipCrManifest string `json:"membershipCrManifest,omitempty"` + + // MembershipResources: Output only. Additional Kubernetes resources + // that need to be applied to the cluster after Membership creation, and + // after every update. This field is only populated in the Membership + // returned from a successful long-running operation from + // CreateMembership or UpdateMembership. It is not populated during + // normal GetMembership or ListMemberships requests. To get the resource + // manifest after the initial registration, the caller should make a + // UpdateMembership call with an empty field mask. + MembershipResources []*ResourceManifest `json:"membershipResources,omitempty"` + + // ResourceOptions: Optional. Options for Kubernetes resource + // generation. + ResourceOptions *ResourceOptions `json:"resourceOptions,omitempty"` + + // ForceSendFields is a list of field names (e.g. "ConnectResources") 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. "ConnectResources") 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 *KubernetesResource) MarshalJSON() ([]byte, error) { + type NoMethod KubernetesResource + raw := NoMethod(*s) + return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) +} + // ListFeaturesResponse: Response message for the `GkeHub.ListFeatures` // method. type ListFeaturesResponse struct { @@ -3174,6 +3517,48 @@ func (s *ListMembershipRBACRoleBindingsResponse) MarshalJSON() ([]byte, error) { return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) } +// ListMembershipsResponse: Response message for the +// `GkeHub.ListMemberships` method. +type ListMembershipsResponse struct { + // NextPageToken: A token to request the next page of resources from the + // `ListMemberships` method. The value of an empty string means that + // there are no more resources to return. + NextPageToken string `json:"nextPageToken,omitempty"` + + // Resources: The list of matching Memberships. + Resources []*Membership `json:"resources,omitempty"` + + // Unreachable: List of locations that could not be reached while + // fetching this list. + Unreachable []string `json:"unreachable,omitempty"` + + // ServerResponse contains the HTTP response code and headers from the + // server. + googleapi.ServerResponse `json:"-"` + + // ForceSendFields is a list of field names (e.g. "NextPageToken") 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. "NextPageToken") 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 *ListMembershipsResponse) MarshalJSON() ([]byte, error) { + type NoMethod ListMembershipsResponse + raw := NoMethod(*s) + return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) +} + // ListNamespacesResponse: List of fleet namespaces. type ListNamespacesResponse struct { // Namespaces: The list of fleet namespaces @@ -3446,6 +3831,97 @@ func (s *Location) MarshalJSON() ([]byte, error) { return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) } +// Membership: Membership contains information about a member cluster. +type Membership struct { + // Authority: Optional. How to identify workloads from this Membership. + // See the documentation on Workload Identity for more details: + // https://cloud.google.com/kubernetes-engine/docs/how-to/workload-identity + Authority *Authority `json:"authority,omitempty"` + + // CreateTime: Output only. When the Membership was created. + CreateTime string `json:"createTime,omitempty"` + + // DeleteTime: Output only. When the Membership was deleted. + DeleteTime string `json:"deleteTime,omitempty"` + + // Description: Output only. Description of this membership, limited to + // 63 characters. Must match the regex: `a-zA-Z0-9*` This field is + // present for legacy purposes. + Description string `json:"description,omitempty"` + + // Endpoint: Optional. Endpoint information to reach this member. + Endpoint *MembershipEndpoint `json:"endpoint,omitempty"` + + // ExternalId: Optional. An externally-generated and managed ID for this + // Membership. This ID may be modified after creation, but this is not + // recommended. The ID must match the regex: `a-zA-Z0-9*` If this + // Membership represents a Kubernetes cluster, this value should be set + // to the UID of the `kube-system` namespace object. + ExternalId string `json:"externalId,omitempty"` + + // Labels: Optional. Labels for this membership. + Labels map[string]string `json:"labels,omitempty"` + + // LastConnectionTime: Output only. For clusters using Connect, the + // timestamp of the most recent connection established with Google + // Cloud. This time is updated every several minutes, not continuously. + // For clusters that do not use GKE Connect, or that have never + // connected successfully, this field will be unset. + LastConnectionTime string `json:"lastConnectionTime,omitempty"` + + // MonitoringConfig: Optional. The monitoring config information for + // this membership. + MonitoringConfig *MonitoringConfig `json:"monitoringConfig,omitempty"` + + // Name: Output only. The full, unique name of this Membership resource + // in the format `projects/*/locations/*/memberships/{membership_id}`, + // set during creation. `membership_id` must be a valid RFC 1123 + // compliant DNS label: 1. At most 63 characters in length 2. It must + // consist of lower case alphanumeric characters or `-` 3. It must start + // and end with an alphanumeric character Which can be expressed as the + // regex: `[a-z0-9]([-a-z0-9]*[a-z0-9])?`, with a maximum length of 63 + // characters. + Name string `json:"name,omitempty"` + + // State: Output only. State of the Membership resource. + State *MembershipState `json:"state,omitempty"` + + // UniqueId: Output only. Google-generated UUID for this resource. This + // is unique across all Membership resources. If a Membership resource + // is deleted and another resource with the same name is created, it + // gets a different unique_id. + UniqueId string `json:"uniqueId,omitempty"` + + // UpdateTime: Output only. When the Membership was last updated. + 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. "Authority") 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. "Authority") 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 *Membership) MarshalJSON() ([]byte, error) { + type NoMethod Membership + raw := NoMethod(*s) + return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) +} + // MembershipBinding: MembershipBinding is a subresource of a // Membership, representing what Fleet Scopes (or other, future Fleet // resources) a Membership is bound to. @@ -3545,18 +4021,82 @@ func (s *MembershipBindingLifecycleState) MarshalJSON() ([]byte, error) { return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) } -// MembershipFeatureSpec: MembershipFeatureSpec contains configuration -// information for a single Membership. NOTE: Please use snake case in -// your feature name. -type MembershipFeatureSpec struct { - // Anthosobservability: Anthos Observability-specific spec - Anthosobservability *AnthosObservabilityMembershipSpec `json:"anthosobservability,omitempty"` +// MembershipEndpoint: MembershipEndpoint contains information needed to +// contact a Kubernetes API, endpoint and any additional Kubernetes +// metadata. +type MembershipEndpoint struct { + // ApplianceCluster: Optional. Specific information for a GDC Edge + // Appliance cluster. + ApplianceCluster *ApplianceCluster `json:"applianceCluster,omitempty"` - // Cloudbuild: Cloud Build-specific spec - Cloudbuild *MembershipSpec `json:"cloudbuild,omitempty"` + // EdgeCluster: Optional. Specific information for a Google Edge + // cluster. + EdgeCluster *EdgeCluster `json:"edgeCluster,omitempty"` - // Configmanagement: Config Management-specific spec. - Configmanagement *ConfigManagementMembershipSpec `json:"configmanagement,omitempty"` + // GkeCluster: Optional. Specific information for a GKE-on-GCP cluster. + GkeCluster *GkeCluster `json:"gkeCluster,omitempty"` + + // GoogleManaged: Output only. Whether the lifecycle of this membership + // is managed by a google cluster platform service. + GoogleManaged bool `json:"googleManaged,omitempty"` + + // KubernetesMetadata: Output only. Useful Kubernetes-specific metadata. + KubernetesMetadata *KubernetesMetadata `json:"kubernetesMetadata,omitempty"` + + // KubernetesResource: Optional. The in-cluster Kubernetes Resources + // that should be applied for a correctly registered cluster, in the + // steady state. These resources: * Ensure that the cluster is + // exclusively registered to one and only one Hub Membership. * + // Propagate Workload Pool Information available in the Membership + // Authority field. * Ensure proper initial configuration of default Hub + // Features. + KubernetesResource *KubernetesResource `json:"kubernetesResource,omitempty"` + + // MultiCloudCluster: Optional. Specific information for a GKE + // Multi-Cloud cluster. + MultiCloudCluster *MultiCloudCluster `json:"multiCloudCluster,omitempty"` + + // OnPremCluster: Optional. Specific information for a GKE On-Prem + // cluster. An onprem user-cluster who has no resourceLink is not + // allowed to use this field, it should have a nil "type" instead. + OnPremCluster *OnPremCluster `json:"onPremCluster,omitempty"` + + // ForceSendFields is a list of field names (e.g. "ApplianceCluster") 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. "ApplianceCluster") 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 *MembershipEndpoint) MarshalJSON() ([]byte, error) { + type NoMethod MembershipEndpoint + raw := NoMethod(*s) + return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) +} + +// MembershipFeatureSpec: MembershipFeatureSpec contains configuration +// information for a single Membership. NOTE: Please use snake case in +// your feature name. +type MembershipFeatureSpec struct { + // Anthosobservability: Anthos Observability-specific spec + Anthosobservability *AnthosObservabilityMembershipSpec `json:"anthosobservability,omitempty"` + + // Cloudbuild: Cloud Build-specific spec + Cloudbuild *MembershipSpec `json:"cloudbuild,omitempty"` + + // Configmanagement: Config Management-specific spec. + Configmanagement *ConfigManagementMembershipSpec `json:"configmanagement,omitempty"` // Fleetobservability: Fleet observability membership spec Fleetobservability *FleetObservabilityMembershipSpec `json:"fleetobservability,omitempty"` @@ -3690,6 +4230,44 @@ func (s *MembershipSpec) MarshalJSON() ([]byte, error) { return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) } +// MembershipState: MembershipState describes the state of a Membership +// resource. +type MembershipState struct { + // Code: Output only. The current state of the Membership resource. + // + // Possible values: + // "CODE_UNSPECIFIED" - The code is not set. + // "CREATING" - The cluster is being registered. + // "READY" - The cluster is registered. + // "DELETING" - The cluster is being unregistered. + // "UPDATING" - The Membership is being updated. + // "SERVICE_UPDATING" - The Membership is being updated by the Hub + // Service. + Code string `json:"code,omitempty"` + + // ForceSendFields is a list of field names (e.g. "Code") 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. "Code") 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 *MembershipState) MarshalJSON() ([]byte, error) { + type NoMethod MembershipState + raw := NoMethod(*s) + return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) +} + // MeteringMembershipState: **Metering**: Per-Membership Feature State. type MeteringMembershipState struct { // LastMeasurementTime: The time stamp of the most recent measurement of @@ -3738,6 +4316,101 @@ func (s *MeteringMembershipState) UnmarshalJSON(data []byte) error { return nil } +// MonitoringConfig: This field informs Fleet-based +// applications/services/UIs with the necessary information for where +// each underlying Cluster reports its metrics. +type MonitoringConfig struct { + // Cluster: Immutable. Cluster name used to report metrics. For Anthos + // on VMWare/Baremetal, it would be in format + // `memberClusters/cluster_name`; And for Anthos on MultiCloud, it would + // be in format `{azureClusters, awsClusters}/cluster_name`. + Cluster string `json:"cluster,omitempty"` + + // ClusterHash: Immutable. Cluster hash, this is a unique string + // generated by google code, which does not contain any PII, which we + // can use to reference the cluster. This is expected to be created by + // the monitoring stack and persisted into the Cluster object as well as + // to GKE-Hub. + ClusterHash string `json:"clusterHash,omitempty"` + + // KubernetesMetricsPrefix: Kubernetes system metrics, if available, are + // written to this prefix. This defaults to kubernetes.io for GKE, and + // kubernetes.io/anthos for Anthos eventually. Noted: Anthos MultiCloud + // will have kubernetes.io prefix today but will migration to be under + // kubernetes.io/anthos + KubernetesMetricsPrefix string `json:"kubernetesMetricsPrefix,omitempty"` + + // Location: Immutable. Location used to report Metrics + Location string `json:"location,omitempty"` + + // ProjectId: Immutable. Project used to report Metrics + ProjectId string `json:"projectId,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 *MonitoringConfig) MarshalJSON() ([]byte, error) { + type NoMethod MonitoringConfig + raw := NoMethod(*s) + return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) +} + +// MultiCloudCluster: MultiCloudCluster contains information specific to +// GKE Multi-Cloud clusters. +type MultiCloudCluster struct { + // ClusterMissing: Output only. If cluster_missing is set then it + // denotes that API(gkemulticloud.googleapis.com) resource for this GKE + // Multi-Cloud cluster no longer exists. + ClusterMissing bool `json:"clusterMissing,omitempty"` + + // ResourceLink: Immutable. Self-link of the Google Cloud resource for + // the GKE Multi-Cloud cluster. For example: + // //gkemulticloud.googleapis.com/projects/my-project/locations/us-west1- + // a/awsClusters/my-cluster + // //gkemulticloud.googleapis.com/projects/my-project/locations/us-west1- + // a/azureClusters/my-cluster + // //gkemulticloud.googleapis.com/projects/my-project/locations/us-west1- + // a/attachedClusters/my-cluster + ResourceLink string `json:"resourceLink,omitempty"` + + // ForceSendFields is a list of field names (e.g. "ClusterMissing") 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. "ClusterMissing") 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 *MultiCloudCluster) MarshalJSON() ([]byte, error) { + type NoMethod MultiCloudCluster + raw := NoMethod(*s) + return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) +} + // MultiClusterIngressFeatureSpec: **Multi-cluster Ingress**: The // configuration for the MultiClusterIngress feature. type MultiClusterIngressFeatureSpec struct { @@ -3879,6 +4552,58 @@ func (s *NamespaceLifecycleState) MarshalJSON() ([]byte, error) { return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) } +// OnPremCluster: OnPremCluster contains information specific to GKE +// On-Prem clusters. +type OnPremCluster struct { + // AdminCluster: Immutable. Whether the cluster is an admin cluster. + AdminCluster bool `json:"adminCluster,omitempty"` + + // ClusterMissing: Output only. If cluster_missing is set then it + // denotes that API(gkeonprem.googleapis.com) resource for this GKE + // On-Prem cluster no longer exists. + ClusterMissing bool `json:"clusterMissing,omitempty"` + + // ClusterType: Immutable. The on prem cluster's type. + // + // Possible values: + // "CLUSTERTYPE_UNSPECIFIED" - The ClusterType is not set. + // "BOOTSTRAP" - The ClusterType is bootstrap cluster. + // "HYBRID" - The ClusterType is baremetal hybrid cluster. + // "STANDALONE" - The ClusterType is baremetal standalone cluster. + // "USER" - The ClusterType is user cluster. + ClusterType string `json:"clusterType,omitempty"` + + // ResourceLink: Immutable. Self-link of the Google Cloud resource for + // the GKE On-Prem cluster. For example: + // //gkeonprem.googleapis.com/projects/my-project/locations/us-west1-a/vm + // wareClusters/my-cluster + // //gkeonprem.googleapis.com/projects/my-project/locations/us-west1-a/ba + // reMetalClusters/my-cluster + ResourceLink string `json:"resourceLink,omitempty"` + + // ForceSendFields is a list of field names (e.g. "AdminCluster") 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. "AdminCluster") 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 *OnPremCluster) MarshalJSON() ([]byte, error) { + type NoMethod OnPremCluster + raw := NoMethod(*s) + return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) +} + // Operation: This resource represents a long-running operation that is // the result of a network API call. type Operation struct { @@ -4847,6 +5572,86 @@ func (s *RBACRoleBindingLifecycleState) MarshalJSON() ([]byte, error) { return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) } +// ResourceManifest: ResourceManifest represents a single Kubernetes +// resource to be applied to the cluster. +type ResourceManifest struct { + // ClusterScoped: Whether the resource provided in the manifest is + // `cluster_scoped`. If unset, the manifest is assumed to be namespace + // scoped. This field is used for REST mapping when applying the + // resource in a cluster. + ClusterScoped bool `json:"clusterScoped,omitempty"` + + // Manifest: YAML manifest of the resource. + Manifest string `json:"manifest,omitempty"` + + // ForceSendFields is a list of field names (e.g. "ClusterScoped") 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. "ClusterScoped") 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 *ResourceManifest) MarshalJSON() ([]byte, error) { + type NoMethod ResourceManifest + raw := NoMethod(*s) + return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) +} + +// ResourceOptions: ResourceOptions represent options for Kubernetes +// resource generation. +type ResourceOptions struct { + // ConnectVersion: Optional. The Connect agent version to use for + // connect_resources. Defaults to the latest GKE Connect version. The + // version must be a currently supported version, obsolete versions will + // be rejected. + ConnectVersion string `json:"connectVersion,omitempty"` + + // K8sVersion: Optional. Major version of the Kubernetes cluster. This + // is only used to determine which version to use for the + // CustomResourceDefinition resources, `apiextensions/v1beta1` + // or`apiextensions/v1`. + K8sVersion string `json:"k8sVersion,omitempty"` + + // V1beta1Crd: Optional. Use `apiextensions/v1beta1` instead of + // `apiextensions/v1` for CustomResourceDefinition resources. This + // option should be set for clusters with Kubernetes apiserver versions + // <1.16. + V1beta1Crd bool `json:"v1beta1Crd,omitempty"` + + // ForceSendFields is a list of field names (e.g. "ConnectVersion") 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. "ConnectVersion") 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 *ResourceOptions) MarshalJSON() ([]byte, error) { + type NoMethod ResourceOptions + raw := NoMethod(*s) + return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) +} + // Role: Role is the type for Kubernetes roles type Role struct { // PredefinedRole: predefined_role is the Kubernetes default role to use @@ -4886,10 +5691,6 @@ func (s *Role) MarshalJSON() ([]byte, error) { // Scope: Scope represents a Scope in a Fleet. type Scope struct { - // AllMemberships: If true, all Memberships in the Fleet bind to this - // Scope. - AllMemberships bool `json:"allMemberships,omitempty"` - // CreateTime: Output only. When the scope was created. CreateTime string `json:"createTime,omitempty"` @@ -4927,7 +5728,7 @@ type Scope struct { // server. googleapi.ServerResponse `json:"-"` - // ForceSendFields is a list of field names (e.g. "AllMemberships") to + // 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 @@ -4935,13 +5736,12 @@ type Scope struct { // This may be used to include empty fields in Patch requests. ForceSendFields []string `json:"-"` - // NullFields is a list of field names (e.g. "AllMemberships") 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. "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:"-"` } @@ -5377,6 +6177,38 @@ func (s *TestIamPermissionsResponse) MarshalJSON() ([]byte, error) { return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) } +// TypeMeta: TypeMeta is the type information needed for content +// unmarshalling of Kubernetes resources in the manifest. +type TypeMeta struct { + // ApiVersion: APIVersion of the resource (e.g. v1). + ApiVersion string `json:"apiVersion,omitempty"` + + // Kind: Kind of the resource (e.g. Deployment). + Kind string `json:"kind,omitempty"` + + // ForceSendFields is a list of field names (e.g. "ApiVersion") 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. "ApiVersion") 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 *TypeMeta) MarshalJSON() ([]byte, error) { + type NoMethod TypeMeta + raw := NoMethod(*s) + return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) +} + // method id "gkehub.organizations.locations.fleets.list": type OrganizationsLocationsFleetsListCall struct { @@ -8081,53 +8913,980 @@ func (c *ProjectsLocationsFleetsPatchCall) Do(opts ...googleapi.CallOption) (*Op } -// method id "gkehub.projects.locations.memberships.getIamPolicy": +// method id "gkehub.projects.locations.memberships.create": -type ProjectsLocationsMembershipsGetIamPolicyCall struct { - s *Service - resource string - urlParams_ gensupport.URLParams - ifNoneMatch_ string - ctx_ context.Context - header_ http.Header +type ProjectsLocationsMembershipsCreateCall struct { + s *Service + parent string + membership *Membership + urlParams_ gensupport.URLParams + ctx_ context.Context + header_ http.Header } -// GetIamPolicy: Gets the access control policy for a resource. Returns -// an empty policy if the resource exists and does not have a policy -// set. +// Create: Creates a new Membership. **This is currently only supported +// for GKE clusters on Google Cloud**. To register other clusters, +// follow the instructions at +// https://cloud.google.com/anthos/multicluster-management/connect/registering-a-cluster. // -// - resource: REQUIRED: The resource for which the policy is being -// requested. See Resource names -// (https://cloud.google.com/apis/design/resource_names) for the -// appropriate value for this field. -func (r *ProjectsLocationsMembershipsService) GetIamPolicy(resource string) *ProjectsLocationsMembershipsGetIamPolicyCall { - c := &ProjectsLocationsMembershipsGetIamPolicyCall{s: r.s, urlParams_: make(gensupport.URLParams)} - c.resource = resource +// - parent: The parent (project and location) where the Memberships +// will be created. Specified in the format `projects/*/locations/*`. +func (r *ProjectsLocationsMembershipsService) Create(parent string, membership *Membership) *ProjectsLocationsMembershipsCreateCall { + c := &ProjectsLocationsMembershipsCreateCall{s: r.s, urlParams_: make(gensupport.URLParams)} + c.parent = parent + c.membership = membership return c } -// OptionsRequestedPolicyVersion sets the optional parameter -// "options.requestedPolicyVersion": The maximum policy version that -// will be used to format the policy. Valid values are 0, 1, and 3. -// Requests specifying an invalid value will be rejected. Requests for -// policies with any conditional role bindings must specify version 3. -// Policies with no conditional role bindings may specify any valid -// value or leave the field unset. The policy in the response might use -// the policy version that you specified, or it might use a lower policy -// version. For example, if you specify version 3, but the policy has no -// conditional role bindings, the response uses version 1. To learn -// which resources support conditions in their IAM policies, see the IAM -// documentation -// (https://cloud.google.com/iam/help/conditions/resource-policies). -func (c *ProjectsLocationsMembershipsGetIamPolicyCall) OptionsRequestedPolicyVersion(optionsRequestedPolicyVersion int64) *ProjectsLocationsMembershipsGetIamPolicyCall { - c.urlParams_.Set("options.requestedPolicyVersion", fmt.Sprint(optionsRequestedPolicyVersion)) +// MembershipId sets the optional parameter "membershipId": Required. +// Client chosen ID for the membership. `membership_id` must be a valid +// RFC 1123 compliant DNS label: 1. At most 63 characters in length 2. +// It must consist of lower case alphanumeric characters or `-` 3. It +// must start and end with an alphanumeric character Which can be +// expressed as the regex: `[a-z0-9]([-a-z0-9]*[a-z0-9])?`, with a +// maximum length of 63 characters. +func (c *ProjectsLocationsMembershipsCreateCall) MembershipId(membershipId string) *ProjectsLocationsMembershipsCreateCall { + c.urlParams_.Set("membershipId", membershipId) return c } -// Fields allows partial responses to be retrieved. See +// RequestId sets the optional parameter "requestId": A request ID to +// identify requests. Specify a unique request ID so that if you must +// retry your request, the server will know to ignore the request if it +// has already been completed. The server will guarantee that for at +// least 60 minutes after the first request. For example, consider a +// situation where you make an initial request and the request times +// out. If you make the request again with the same request ID, the +// server can check if original operation with the same request ID was +// received, and if so, will ignore the second request. This prevents +// clients from accidentally creating duplicate commitments. The request +// ID must be a valid UUID with the exception that zero UUID is not +// supported (00000000-0000-0000-0000-000000000000). +func (c *ProjectsLocationsMembershipsCreateCall) RequestId(requestId string) *ProjectsLocationsMembershipsCreateCall { + c.urlParams_.Set("requestId", requestId) + 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 *ProjectsLocationsMembershipsCreateCall) Fields(s ...googleapi.Field) *ProjectsLocationsMembershipsCreateCall { + 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 *ProjectsLocationsMembershipsCreateCall) Context(ctx context.Context) *ProjectsLocationsMembershipsCreateCall { + 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 *ProjectsLocationsMembershipsCreateCall) Header() http.Header { + if c.header_ == nil { + c.header_ = make(http.Header) + } + return c.header_ +} + +func (c *ProjectsLocationsMembershipsCreateCall) 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.membership) + 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, "v1beta/{+parent}/memberships") + 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 "gkehub.projects.locations.memberships.create" call. +// Exactly one of *Operation or error will be non-nil. Any non-2xx +// status code is an error. Response headers are in either +// *Operation.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 *ProjectsLocationsMembershipsCreateCall) Do(opts ...googleapi.CallOption) (*Operation, 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 := &Operation{ + 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 a new Membership. **This is currently only supported for GKE clusters on Google Cloud**. To register other clusters, follow the instructions at https://cloud.google.com/anthos/multicluster-management/connect/registering-a-cluster.", + // "flatPath": "v1beta/projects/{projectsId}/locations/{locationsId}/memberships", + // "httpMethod": "POST", + // "id": "gkehub.projects.locations.memberships.create", + // "parameterOrder": [ + // "parent" + // ], + // "parameters": { + // "membershipId": { + // "description": "Required. Client chosen ID for the membership. `membership_id` must be a valid RFC 1123 compliant DNS label: 1. At most 63 characters in length 2. It must consist of lower case alphanumeric characters or `-` 3. It must start and end with an alphanumeric character Which can be expressed as the regex: `[a-z0-9]([-a-z0-9]*[a-z0-9])?`, with a maximum length of 63 characters.", + // "location": "query", + // "type": "string" + // }, + // "parent": { + // "description": "Required. The parent (project and location) where the Memberships will be created. Specified in the format `projects/*/locations/*`.", + // "location": "path", + // "pattern": "^projects/[^/]+/locations/[^/]+$", + // "required": true, + // "type": "string" + // }, + // "requestId": { + // "description": "Optional. A request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. The server will guarantee that for at least 60 minutes after the first request. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).", + // "location": "query", + // "type": "string" + // } + // }, + // "path": "v1beta/{+parent}/memberships", + // "request": { + // "$ref": "Membership" + // }, + // "response": { + // "$ref": "Operation" + // }, + // "scopes": [ + // "https://www.googleapis.com/auth/cloud-platform" + // ] + // } + +} + +// method id "gkehub.projects.locations.memberships.delete": + +type ProjectsLocationsMembershipsDeleteCall struct { + s *Service + name string + urlParams_ gensupport.URLParams + ctx_ context.Context + header_ http.Header +} + +// Delete: Removes a Membership. **This is currently only supported for +// GKE clusters on Google Cloud**. To unregister other clusters, follow +// the instructions at +// https://cloud.google.com/anthos/multicluster-management/connect/unregistering-a-cluster. +// +// - name: The Membership resource name in the format +// `projects/*/locations/*/memberships/*`. +func (r *ProjectsLocationsMembershipsService) Delete(name string) *ProjectsLocationsMembershipsDeleteCall { + c := &ProjectsLocationsMembershipsDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)} + c.name = name + return c +} + +// Force sets the optional parameter "force": If set to true, any +// subresource from this Membership will also be deleted. Otherwise, the +// request will only work if the Membership has no subresource. +func (c *ProjectsLocationsMembershipsDeleteCall) Force(force bool) *ProjectsLocationsMembershipsDeleteCall { + c.urlParams_.Set("force", fmt.Sprint(force)) + return c +} + +// RequestId sets the optional parameter "requestId": A request ID to +// identify requests. Specify a unique request ID so that if you must +// retry your request, the server will know to ignore the request if it +// has already been completed. The server will guarantee that for at +// least 60 minutes after the first request. For example, consider a +// situation where you make an initial request and the request times +// out. If you make the request again with the same request ID, the +// server can check if original operation with the same request ID was +// received, and if so, will ignore the second request. This prevents +// clients from accidentally creating duplicate commitments. The request +// ID must be a valid UUID with the exception that zero UUID is not +// supported (00000000-0000-0000-0000-000000000000). +func (c *ProjectsLocationsMembershipsDeleteCall) RequestId(requestId string) *ProjectsLocationsMembershipsDeleteCall { + c.urlParams_.Set("requestId", requestId) + 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 *ProjectsLocationsMembershipsDeleteCall) Fields(s ...googleapi.Field) *ProjectsLocationsMembershipsDeleteCall { + 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 *ProjectsLocationsMembershipsDeleteCall) Context(ctx context.Context) *ProjectsLocationsMembershipsDeleteCall { + 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 *ProjectsLocationsMembershipsDeleteCall) Header() http.Header { + if c.header_ == nil { + c.header_ = make(http.Header) + } + return c.header_ +} + +func (c *ProjectsLocationsMembershipsDeleteCall) 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, "v1beta/{+name}") + urls += "?" + c.urlParams_.Encode() + req, err := http.NewRequest("DELETE", urls, body) + if err != nil { + return nil, err + } + req.Header = reqHeaders + googleapi.Expand(req.URL, map[string]string{ + "name": c.name, + }) + return gensupport.SendRequest(c.ctx_, c.s.client, req) +} + +// Do executes the "gkehub.projects.locations.memberships.delete" call. +// Exactly one of *Operation or error will be non-nil. Any non-2xx +// status code is an error. Response headers are in either +// *Operation.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 *ProjectsLocationsMembershipsDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, 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 := &Operation{ + 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": "Removes a Membership. **This is currently only supported for GKE clusters on Google Cloud**. To unregister other clusters, follow the instructions at https://cloud.google.com/anthos/multicluster-management/connect/unregistering-a-cluster.", + // "flatPath": "v1beta/projects/{projectsId}/locations/{locationsId}/memberships/{membershipsId}", + // "httpMethod": "DELETE", + // "id": "gkehub.projects.locations.memberships.delete", + // "parameterOrder": [ + // "name" + // ], + // "parameters": { + // "force": { + // "description": "Optional. If set to true, any subresource from this Membership will also be deleted. Otherwise, the request will only work if the Membership has no subresource.", + // "location": "query", + // "type": "boolean" + // }, + // "name": { + // "description": "Required. The Membership resource name in the format `projects/*/locations/*/memberships/*`.", + // "location": "path", + // "pattern": "^projects/[^/]+/locations/[^/]+/memberships/[^/]+$", + // "required": true, + // "type": "string" + // }, + // "requestId": { + // "description": "Optional. A request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. The server will guarantee that for at least 60 minutes after the first request. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).", + // "location": "query", + // "type": "string" + // } + // }, + // "path": "v1beta/{+name}", + // "response": { + // "$ref": "Operation" + // }, + // "scopes": [ + // "https://www.googleapis.com/auth/cloud-platform" + // ] + // } + +} + +// method id "gkehub.projects.locations.memberships.generateConnectManifest": + +type ProjectsLocationsMembershipsGenerateConnectManifestCall struct { + s *Service + name string + urlParams_ gensupport.URLParams + ifNoneMatch_ string + ctx_ context.Context + header_ http.Header +} + +// GenerateConnectManifest: Generates the manifest for deployment of the +// GKE connect agent. **This method is used internally by +// Google-provided libraries.** Most clients should not need to call +// this method directly. +// +// - name: The Membership resource name the Agent will associate with, +// in the format `projects/*/locations/*/memberships/*`. +func (r *ProjectsLocationsMembershipsService) GenerateConnectManifest(name string) *ProjectsLocationsMembershipsGenerateConnectManifestCall { + c := &ProjectsLocationsMembershipsGenerateConnectManifestCall{s: r.s, urlParams_: make(gensupport.URLParams)} + c.name = name + return c +} + +// ImagePullSecretContent sets the optional parameter +// "imagePullSecretContent": The image pull secret content for the +// registry, if not public. +func (c *ProjectsLocationsMembershipsGenerateConnectManifestCall) ImagePullSecretContent(imagePullSecretContent string) *ProjectsLocationsMembershipsGenerateConnectManifestCall { + c.urlParams_.Set("imagePullSecretContent", imagePullSecretContent) + return c +} + +// IsUpgrade sets the optional parameter "isUpgrade": If true, generate +// the resources for upgrade only. Some resources generated only for +// installation (e.g. secrets) will be excluded. +func (c *ProjectsLocationsMembershipsGenerateConnectManifestCall) IsUpgrade(isUpgrade bool) *ProjectsLocationsMembershipsGenerateConnectManifestCall { + c.urlParams_.Set("isUpgrade", fmt.Sprint(isUpgrade)) + return c +} + +// Namespace sets the optional parameter "namespace": Namespace for GKE +// Connect agent resources. Defaults to `gke-connect`. The Connect Agent +// is authorized automatically when run in the default namespace. +// Otherwise, explicit authorization must be granted with an additional +// IAM binding. +func (c *ProjectsLocationsMembershipsGenerateConnectManifestCall) Namespace(namespace string) *ProjectsLocationsMembershipsGenerateConnectManifestCall { + c.urlParams_.Set("namespace", namespace) + return c +} + +// Proxy sets the optional parameter "proxy": URI of a proxy if +// connectivity from the agent to gkeconnect.googleapis.com requires the +// use of a proxy. Format must be in the form +// `http(s)://{proxy_address}`, depending on the HTTP/HTTPS protocol +// supported by the proxy. This will direct the connect agent's outbound +// traffic through a HTTP(S) proxy. +func (c *ProjectsLocationsMembershipsGenerateConnectManifestCall) Proxy(proxy string) *ProjectsLocationsMembershipsGenerateConnectManifestCall { + c.urlParams_.Set("proxy", proxy) + return c +} + +// Registry sets the optional parameter "registry": The registry to +// fetch the connect agent image from. Defaults to gcr.io/gkeconnect. +func (c *ProjectsLocationsMembershipsGenerateConnectManifestCall) Registry(registry string) *ProjectsLocationsMembershipsGenerateConnectManifestCall { + c.urlParams_.Set("registry", registry) + return c +} + +// Version sets the optional parameter "version": The Connect agent +// version to use. Defaults to the most current version. +func (c *ProjectsLocationsMembershipsGenerateConnectManifestCall) Version(version string) *ProjectsLocationsMembershipsGenerateConnectManifestCall { + c.urlParams_.Set("version", version) + 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 *ProjectsLocationsMembershipsGenerateConnectManifestCall) Fields(s ...googleapi.Field) *ProjectsLocationsMembershipsGenerateConnectManifestCall { + 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 *ProjectsLocationsMembershipsGenerateConnectManifestCall) IfNoneMatch(entityTag string) *ProjectsLocationsMembershipsGenerateConnectManifestCall { + 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 *ProjectsLocationsMembershipsGenerateConnectManifestCall) Context(ctx context.Context) *ProjectsLocationsMembershipsGenerateConnectManifestCall { + 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 *ProjectsLocationsMembershipsGenerateConnectManifestCall) Header() http.Header { + if c.header_ == nil { + c.header_ = make(http.Header) + } + return c.header_ +} + +func (c *ProjectsLocationsMembershipsGenerateConnectManifestCall) 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, "v1beta/{+name}:generateConnectManifest") + 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{ + "name": c.name, + }) + return gensupport.SendRequest(c.ctx_, c.s.client, req) +} + +// Do executes the "gkehub.projects.locations.memberships.generateConnectManifest" call. +// Exactly one of *GenerateConnectManifestResponse or error will be +// non-nil. Any non-2xx status code is an error. Response headers are in +// either *GenerateConnectManifestResponse.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 *ProjectsLocationsMembershipsGenerateConnectManifestCall) Do(opts ...googleapi.CallOption) (*GenerateConnectManifestResponse, 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 := &GenerateConnectManifestResponse{ + 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": "Generates the manifest for deployment of the GKE connect agent. **This method is used internally by Google-provided libraries.** Most clients should not need to call this method directly.", + // "flatPath": "v1beta/projects/{projectsId}/locations/{locationsId}/memberships/{membershipsId}:generateConnectManifest", + // "httpMethod": "GET", + // "id": "gkehub.projects.locations.memberships.generateConnectManifest", + // "parameterOrder": [ + // "name" + // ], + // "parameters": { + // "imagePullSecretContent": { + // "description": "Optional. The image pull secret content for the registry, if not public.", + // "format": "byte", + // "location": "query", + // "type": "string" + // }, + // "isUpgrade": { + // "description": "Optional. If true, generate the resources for upgrade only. Some resources generated only for installation (e.g. secrets) will be excluded.", + // "location": "query", + // "type": "boolean" + // }, + // "name": { + // "description": "Required. The Membership resource name the Agent will associate with, in the format `projects/*/locations/*/memberships/*`.", + // "location": "path", + // "pattern": "^projects/[^/]+/locations/[^/]+/memberships/[^/]+$", + // "required": true, + // "type": "string" + // }, + // "namespace": { + // "description": "Optional. Namespace for GKE Connect agent resources. Defaults to `gke-connect`. The Connect Agent is authorized automatically when run in the default namespace. Otherwise, explicit authorization must be granted with an additional IAM binding.", + // "location": "query", + // "type": "string" + // }, + // "proxy": { + // "description": "Optional. URI of a proxy if connectivity from the agent to gkeconnect.googleapis.com requires the use of a proxy. Format must be in the form `http(s)://{proxy_address}`, depending on the HTTP/HTTPS protocol supported by the proxy. This will direct the connect agent's outbound traffic through a HTTP(S) proxy.", + // "format": "byte", + // "location": "query", + // "type": "string" + // }, + // "registry": { + // "description": "Optional. The registry to fetch the connect agent image from. Defaults to gcr.io/gkeconnect.", + // "location": "query", + // "type": "string" + // }, + // "version": { + // "description": "Optional. The Connect agent version to use. Defaults to the most current version.", + // "location": "query", + // "type": "string" + // } + // }, + // "path": "v1beta/{+name}:generateConnectManifest", + // "response": { + // "$ref": "GenerateConnectManifestResponse" + // }, + // "scopes": [ + // "https://www.googleapis.com/auth/cloud-platform" + // ] + // } + +} + +// method id "gkehub.projects.locations.memberships.get": + +type ProjectsLocationsMembershipsGetCall struct { + s *Service + name string + urlParams_ gensupport.URLParams + ifNoneMatch_ string + ctx_ context.Context + header_ http.Header +} + +// Get: Gets the details of a Membership. +// +// - name: The Membership resource name in the format +// `projects/*/locations/*/memberships/*`. +func (r *ProjectsLocationsMembershipsService) Get(name string) *ProjectsLocationsMembershipsGetCall { + c := &ProjectsLocationsMembershipsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)} + c.name = name + 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 *ProjectsLocationsMembershipsGetCall) Fields(s ...googleapi.Field) *ProjectsLocationsMembershipsGetCall { + 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 *ProjectsLocationsMembershipsGetCall) IfNoneMatch(entityTag string) *ProjectsLocationsMembershipsGetCall { + 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 *ProjectsLocationsMembershipsGetCall) Context(ctx context.Context) *ProjectsLocationsMembershipsGetCall { + 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 *ProjectsLocationsMembershipsGetCall) Header() http.Header { + if c.header_ == nil { + c.header_ = make(http.Header) + } + return c.header_ +} + +func (c *ProjectsLocationsMembershipsGetCall) 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, "v1beta/{+name}") + 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{ + "name": c.name, + }) + return gensupport.SendRequest(c.ctx_, c.s.client, req) +} + +// Do executes the "gkehub.projects.locations.memberships.get" call. +// Exactly one of *Membership or error will be non-nil. Any non-2xx +// status code is an error. Response headers are in either +// *Membership.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 *ProjectsLocationsMembershipsGetCall) Do(opts ...googleapi.CallOption) (*Membership, 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 := &Membership{ + 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": "Gets the details of a Membership.", + // "flatPath": "v1beta/projects/{projectsId}/locations/{locationsId}/memberships/{membershipsId}", + // "httpMethod": "GET", + // "id": "gkehub.projects.locations.memberships.get", + // "parameterOrder": [ + // "name" + // ], + // "parameters": { + // "name": { + // "description": "Required. The Membership resource name in the format `projects/*/locations/*/memberships/*`.", + // "location": "path", + // "pattern": "^projects/[^/]+/locations/[^/]+/memberships/[^/]+$", + // "required": true, + // "type": "string" + // } + // }, + // "path": "v1beta/{+name}", + // "response": { + // "$ref": "Membership" + // }, + // "scopes": [ + // "https://www.googleapis.com/auth/cloud-platform" + // ] + // } + +} + +// method id "gkehub.projects.locations.memberships.getIamPolicy": + +type ProjectsLocationsMembershipsGetIamPolicyCall struct { + s *Service + resource string + urlParams_ gensupport.URLParams + ifNoneMatch_ string + ctx_ context.Context + header_ http.Header +} + +// GetIamPolicy: Gets the access control policy for a resource. Returns +// an empty policy if the resource exists and does not have a policy +// set. +// +// - resource: REQUIRED: The resource for which the policy is being +// requested. See Resource names +// (https://cloud.google.com/apis/design/resource_names) for the +// appropriate value for this field. +func (r *ProjectsLocationsMembershipsService) GetIamPolicy(resource string) *ProjectsLocationsMembershipsGetIamPolicyCall { + c := &ProjectsLocationsMembershipsGetIamPolicyCall{s: r.s, urlParams_: make(gensupport.URLParams)} + c.resource = resource + return c +} + +// OptionsRequestedPolicyVersion sets the optional parameter +// "options.requestedPolicyVersion": The maximum policy version that +// will be used to format the policy. Valid values are 0, 1, and 3. +// Requests specifying an invalid value will be rejected. Requests for +// policies with any conditional role bindings must specify version 3. +// Policies with no conditional role bindings may specify any valid +// value or leave the field unset. The policy in the response might use +// the policy version that you specified, or it might use a lower policy +// version. For example, if you specify version 3, but the policy has no +// conditional role bindings, the response uses version 1. To learn +// which resources support conditions in their IAM policies, see the IAM +// documentation +// (https://cloud.google.com/iam/help/conditions/resource-policies). +func (c *ProjectsLocationsMembershipsGetIamPolicyCall) OptionsRequestedPolicyVersion(optionsRequestedPolicyVersion int64) *ProjectsLocationsMembershipsGetIamPolicyCall { + c.urlParams_.Set("options.requestedPolicyVersion", fmt.Sprint(optionsRequestedPolicyVersion)) + 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 *ProjectsLocationsMembershipsGetIamPolicyCall) Fields(s ...googleapi.Field) *ProjectsLocationsMembershipsGetIamPolicyCall { + 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 *ProjectsLocationsMembershipsGetIamPolicyCall) IfNoneMatch(entityTag string) *ProjectsLocationsMembershipsGetIamPolicyCall { + 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 *ProjectsLocationsMembershipsGetIamPolicyCall) Context(ctx context.Context) *ProjectsLocationsMembershipsGetIamPolicyCall { + 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 *ProjectsLocationsMembershipsGetIamPolicyCall) Header() http.Header { + if c.header_ == nil { + c.header_ = make(http.Header) + } + return c.header_ +} + +func (c *ProjectsLocationsMembershipsGetIamPolicyCall) 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, "v1beta/{+resource}:getIamPolicy") + 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{ + "resource": c.resource, + }) + return gensupport.SendRequest(c.ctx_, c.s.client, req) +} + +// Do executes the "gkehub.projects.locations.memberships.getIamPolicy" call. +// Exactly one of *Policy or error will be non-nil. Any non-2xx status +// code is an error. Response headers are in either +// *Policy.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 *ProjectsLocationsMembershipsGetIamPolicyCall) Do(opts ...googleapi.CallOption) (*Policy, 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 := &Policy{ + 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": "Gets the access control policy for a resource. Returns an empty policy if the resource exists and does not have a policy set.", + // "flatPath": "v1beta/projects/{projectsId}/locations/{locationsId}/memberships/{membershipsId}:getIamPolicy", + // "httpMethod": "GET", + // "id": "gkehub.projects.locations.memberships.getIamPolicy", + // "parameterOrder": [ + // "resource" + // ], + // "parameters": { + // "options.requestedPolicyVersion": { + // "description": "Optional. The maximum policy version that will be used to format the policy. Valid values are 0, 1, and 3. Requests specifying an invalid value will be rejected. Requests for policies with any conditional role bindings must specify version 3. Policies with no conditional role bindings may specify any valid value or leave the field unset. The policy in the response might use the policy version that you specified, or it might use a lower policy version. For example, if you specify version 3, but the policy has no conditional role bindings, the response uses version 1. To learn which resources support conditions in their IAM policies, see the [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-policies).", + // "format": "int32", + // "location": "query", + // "type": "integer" + // }, + // "resource": { + // "description": "REQUIRED: The resource for which the policy is being requested. See [Resource names](https://cloud.google.com/apis/design/resource_names) for the appropriate value for this field.", + // "location": "path", + // "pattern": "^projects/[^/]+/locations/[^/]+/memberships/[^/]+$", + // "required": true, + // "type": "string" + // } + // }, + // "path": "v1beta/{+resource}:getIamPolicy", + // "response": { + // "$ref": "Policy" + // }, + // "scopes": [ + // "https://www.googleapis.com/auth/cloud-platform" + // ] + // } + +} + +// method id "gkehub.projects.locations.memberships.list": + +type ProjectsLocationsMembershipsListCall struct { + s *Service + parent string + urlParams_ gensupport.URLParams + ifNoneMatch_ string + ctx_ context.Context + header_ http.Header +} + +// List: Lists Memberships in a given project and location. +// +// - parent: The parent (project and location) where the Memberships +// will be listed. Specified in the format `projects/*/locations/*`. +// `projects/*/locations/-` list memberships in all the regions. +func (r *ProjectsLocationsMembershipsService) List(parent string) *ProjectsLocationsMembershipsListCall { + c := &ProjectsLocationsMembershipsListCall{s: r.s, urlParams_: make(gensupport.URLParams)} + c.parent = parent + return c +} + +// Filter sets the optional parameter "filter": Lists Memberships that +// match the filter expression, following the syntax outlined in +// https://google.aip.dev/160. Examples: - Name is `bar` in project +// `foo-proj` and location `global`: name = +// "projects/foo-proj/locations/global/membership/bar" - Memberships +// that have a label called `foo`: labels.foo:* - Memberships that have +// a label called `foo` whose value is `bar`: labels.foo = bar - +// Memberships in the CREATING state: state = CREATING +func (c *ProjectsLocationsMembershipsListCall) Filter(filter string) *ProjectsLocationsMembershipsListCall { + c.urlParams_.Set("filter", filter) + return c +} + +// OrderBy sets the optional parameter "orderBy": One or more fields to +// compare and use to sort the output. See +// https://google.aip.dev/132#ordering. +func (c *ProjectsLocationsMembershipsListCall) OrderBy(orderBy string) *ProjectsLocationsMembershipsListCall { + c.urlParams_.Set("orderBy", orderBy) + return c +} + +// PageSize sets the optional parameter "pageSize": When requesting a +// 'page' of resources, `page_size` specifies number of resources to +// return. If unspecified or set to 0, all resources will be returned. +func (c *ProjectsLocationsMembershipsListCall) PageSize(pageSize int64) *ProjectsLocationsMembershipsListCall { + c.urlParams_.Set("pageSize", fmt.Sprint(pageSize)) + return c +} + +// PageToken sets the optional parameter "pageToken": Token returned by +// previous call to `ListMemberships` which specifies the position in +// the list from where to continue listing the resources. +func (c *ProjectsLocationsMembershipsListCall) PageToken(pageToken string) *ProjectsLocationsMembershipsListCall { + 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 *ProjectsLocationsMembershipsGetIamPolicyCall) Fields(s ...googleapi.Field) *ProjectsLocationsMembershipsGetIamPolicyCall { +func (c *ProjectsLocationsMembershipsListCall) Fields(s ...googleapi.Field) *ProjectsLocationsMembershipsListCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } @@ -8137,7 +9896,7 @@ func (c *ProjectsLocationsMembershipsGetIamPolicyCall) Fields(s ...googleapi.Fie // 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 *ProjectsLocationsMembershipsGetIamPolicyCall) IfNoneMatch(entityTag string) *ProjectsLocationsMembershipsGetIamPolicyCall { +func (c *ProjectsLocationsMembershipsListCall) IfNoneMatch(entityTag string) *ProjectsLocationsMembershipsListCall { c.ifNoneMatch_ = entityTag return c } @@ -8145,21 +9904,21 @@ func (c *ProjectsLocationsMembershipsGetIamPolicyCall) IfNoneMatch(entityTag str // 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 *ProjectsLocationsMembershipsGetIamPolicyCall) Context(ctx context.Context) *ProjectsLocationsMembershipsGetIamPolicyCall { +func (c *ProjectsLocationsMembershipsListCall) Context(ctx context.Context) *ProjectsLocationsMembershipsListCall { 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 *ProjectsLocationsMembershipsGetIamPolicyCall) Header() http.Header { +func (c *ProjectsLocationsMembershipsListCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *ProjectsLocationsMembershipsGetIamPolicyCall) doRequest(alt string) (*http.Response, error) { +func (c *ProjectsLocationsMembershipsListCall) 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_ { @@ -8172,7 +9931,7 @@ func (c *ProjectsLocationsMembershipsGetIamPolicyCall) doRequest(alt string) (*h var body io.Reader = nil c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "v1beta/{+resource}:getIamPolicy") + urls := googleapi.ResolveRelative(c.s.BasePath, "v1beta/{+parent}/memberships") urls += "?" + c.urlParams_.Encode() req, err := http.NewRequest("GET", urls, body) if err != nil { @@ -8180,19 +9939,19 @@ func (c *ProjectsLocationsMembershipsGetIamPolicyCall) doRequest(alt string) (*h } req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ - "resource": c.resource, + "parent": c.parent, }) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "gkehub.projects.locations.memberships.getIamPolicy" call. -// Exactly one of *Policy or error will be non-nil. Any non-2xx status -// code is an error. Response headers are in either -// *Policy.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 *ProjectsLocationsMembershipsGetIamPolicyCall) Do(opts ...googleapi.CallOption) (*Policy, error) { +// Do executes the "gkehub.projects.locations.memberships.list" call. +// Exactly one of *ListMembershipsResponse or error will be non-nil. Any +// non-2xx status code is an error. Response headers are in either +// *ListMembershipsResponse.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 *ProjectsLocationsMembershipsListCall) Do(opts ...googleapi.CallOption) (*ListMembershipsResponse, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -8211,7 +9970,7 @@ func (c *ProjectsLocationsMembershipsGetIamPolicyCall) Do(opts ...googleapi.Call if err := googleapi.CheckResponse(res); err != nil { return nil, gensupport.WrapError(err) } - ret := &Policy{ + ret := &ListMembershipsResponse{ ServerResponse: googleapi.ServerResponse{ Header: res.Header, HTTPStatusCode: res.StatusCode, @@ -8223,31 +9982,245 @@ func (c *ProjectsLocationsMembershipsGetIamPolicyCall) Do(opts ...googleapi.Call } return ret, nil // { - // "description": "Gets the access control policy for a resource. Returns an empty policy if the resource exists and does not have a policy set.", - // "flatPath": "v1beta/projects/{projectsId}/locations/{locationsId}/memberships/{membershipsId}:getIamPolicy", + // "description": "Lists Memberships in a given project and location.", + // "flatPath": "v1beta/projects/{projectsId}/locations/{locationsId}/memberships", // "httpMethod": "GET", - // "id": "gkehub.projects.locations.memberships.getIamPolicy", + // "id": "gkehub.projects.locations.memberships.list", // "parameterOrder": [ - // "resource" + // "parent" // ], // "parameters": { - // "options.requestedPolicyVersion": { - // "description": "Optional. The maximum policy version that will be used to format the policy. Valid values are 0, 1, and 3. Requests specifying an invalid value will be rejected. Requests for policies with any conditional role bindings must specify version 3. Policies with no conditional role bindings may specify any valid value or leave the field unset. The policy in the response might use the policy version that you specified, or it might use a lower policy version. For example, if you specify version 3, but the policy has no conditional role bindings, the response uses version 1. To learn which resources support conditions in their IAM policies, see the [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-policies).", + // "filter": { + // "description": "Optional. Lists Memberships that match the filter expression, following the syntax outlined in https://google.aip.dev/160. Examples: - Name is `bar` in project `foo-proj` and location `global`: name = \"projects/foo-proj/locations/global/membership/bar\" - Memberships that have a label called `foo`: labels.foo:* - Memberships that have a label called `foo` whose value is `bar`: labels.foo = bar - Memberships in the CREATING state: state = CREATING", + // "location": "query", + // "type": "string" + // }, + // "orderBy": { + // "description": "Optional. One or more fields to compare and use to sort the output. See https://google.aip.dev/132#ordering.", + // "location": "query", + // "type": "string" + // }, + // "pageSize": { + // "description": "Optional. When requesting a 'page' of resources, `page_size` specifies number of resources to return. If unspecified or set to 0, all resources will be returned.", // "format": "int32", // "location": "query", // "type": "integer" // }, - // "resource": { - // "description": "REQUIRED: The resource for which the policy is being requested. See [Resource names](https://cloud.google.com/apis/design/resource_names) for the appropriate value for this field.", + // "pageToken": { + // "description": "Optional. Token returned by previous call to `ListMemberships` which specifies the position in the list from where to continue listing the resources.", + // "location": "query", + // "type": "string" + // }, + // "parent": { + // "description": "Required. The parent (project and location) where the Memberships will be listed. Specified in the format `projects/*/locations/*`. `projects/*/locations/-` list memberships in all the regions.", + // "location": "path", + // "pattern": "^projects/[^/]+/locations/[^/]+$", + // "required": true, + // "type": "string" + // } + // }, + // "path": "v1beta/{+parent}/memberships", + // "response": { + // "$ref": "ListMembershipsResponse" + // }, + // "scopes": [ + // "https://www.googleapis.com/auth/cloud-platform" + // ] + // } + +} + +// 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 *ProjectsLocationsMembershipsListCall) Pages(ctx context.Context, f func(*ListMembershipsResponse) 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 "gkehub.projects.locations.memberships.patch": + +type ProjectsLocationsMembershipsPatchCall struct { + s *Service + name string + membership *Membership + urlParams_ gensupport.URLParams + ctx_ context.Context + header_ http.Header +} + +// Patch: Updates an existing Membership. +// +// - name: The Membership resource name in the format +// `projects/*/locations/*/memberships/*`. +func (r *ProjectsLocationsMembershipsService) Patch(name string, membership *Membership) *ProjectsLocationsMembershipsPatchCall { + c := &ProjectsLocationsMembershipsPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)} + c.name = name + c.membership = membership + return c +} + +// RequestId sets the optional parameter "requestId": A request ID to +// identify requests. Specify a unique request ID so that if you must +// retry your request, the server will know to ignore the request if it +// has already been completed. The server will guarantee that for at +// least 60 minutes after the first request. For example, consider a +// situation where you make an initial request and the request times +// out. If you make the request again with the same request ID, the +// server can check if original operation with the same request ID was +// received, and if so, will ignore the second request. This prevents +// clients from accidentally creating duplicate commitments. The request +// ID must be a valid UUID with the exception that zero UUID is not +// supported (00000000-0000-0000-0000-000000000000). +func (c *ProjectsLocationsMembershipsPatchCall) RequestId(requestId string) *ProjectsLocationsMembershipsPatchCall { + c.urlParams_.Set("requestId", requestId) + return c +} + +// UpdateMask sets the optional parameter "updateMask": Required. Mask +// of fields to update. +func (c *ProjectsLocationsMembershipsPatchCall) UpdateMask(updateMask string) *ProjectsLocationsMembershipsPatchCall { + c.urlParams_.Set("updateMask", updateMask) + 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 *ProjectsLocationsMembershipsPatchCall) Fields(s ...googleapi.Field) *ProjectsLocationsMembershipsPatchCall { + 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 *ProjectsLocationsMembershipsPatchCall) Context(ctx context.Context) *ProjectsLocationsMembershipsPatchCall { + 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 *ProjectsLocationsMembershipsPatchCall) Header() http.Header { + if c.header_ == nil { + c.header_ = make(http.Header) + } + return c.header_ +} + +func (c *ProjectsLocationsMembershipsPatchCall) 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.membership) + 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, "v1beta/{+name}") + 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{ + "name": c.name, + }) + return gensupport.SendRequest(c.ctx_, c.s.client, req) +} + +// Do executes the "gkehub.projects.locations.memberships.patch" call. +// Exactly one of *Operation or error will be non-nil. Any non-2xx +// status code is an error. Response headers are in either +// *Operation.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 *ProjectsLocationsMembershipsPatchCall) Do(opts ...googleapi.CallOption) (*Operation, 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 := &Operation{ + 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 an existing Membership.", + // "flatPath": "v1beta/projects/{projectsId}/locations/{locationsId}/memberships/{membershipsId}", + // "httpMethod": "PATCH", + // "id": "gkehub.projects.locations.memberships.patch", + // "parameterOrder": [ + // "name" + // ], + // "parameters": { + // "name": { + // "description": "Required. The Membership resource name in the format `projects/*/locations/*/memberships/*`.", // "location": "path", // "pattern": "^projects/[^/]+/locations/[^/]+/memberships/[^/]+$", // "required": true, // "type": "string" + // }, + // "requestId": { + // "description": "Optional. A request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. The server will guarantee that for at least 60 minutes after the first request. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).", + // "location": "query", + // "type": "string" + // }, + // "updateMask": { + // "description": "Required. Mask of fields to update.", + // "format": "google-fieldmask", + // "location": "query", + // "type": "string" // } // }, - // "path": "v1beta/{+resource}:getIamPolicy", + // "path": "v1beta/{+name}", + // "request": { + // "$ref": "Membership" + // }, // "response": { - // "$ref": "Policy" + // "$ref": "Operation" // }, // "scopes": [ // "https://www.googleapis.com/auth/cloud-platform" diff --git a/metastore/v1/metastore-api.json b/metastore/v1/metastore-api.json index 2c599dbf236..974e18f8183 100644 --- a/metastore/v1/metastore-api.json +++ b/metastore/v1/metastore-api.json @@ -1339,7 +1339,7 @@ } } }, - "revision": "20230905", + "revision": "20230926", "rootUrl": "https://metastore.googleapis.com/", "schemas": { "AlterMetadataResourceLocationRequest": { @@ -2023,6 +2023,10 @@ "description": "Metadata about the service in a location.", "id": "LocationMetadata", "properties": { + "multiRegionMetadata": { + "$ref": "MultiRegionMetadata", + "description": "The multi-region metadata if the current region is a multi-region." + }, "supportedHiveMetastoreVersions": { "description": "The versions of Hive Metastore that can be used when creating a new metastore service in this location. The server guarantees that exactly one HiveMetastoreVersion in the list will set is_default.", "items": { @@ -2231,6 +2235,20 @@ "properties": {}, "type": "object" }, + "MultiRegionMetadata": { + "description": "The metadata for the multi-region that includes the constituent regions. The metadata is only populated if the region is multi-region. For single region, it will be empty.", + "id": "MultiRegionMetadata", + "properties": { + "constituentRegions": { + "description": "The regions constituting the multi-region.", + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, "NetworkConfig": { "description": "Network configuration for the Dataproc Metastore service.Next available ID: 4", "id": "NetworkConfig", diff --git a/metastore/v1/metastore-gen.go b/metastore/v1/metastore-gen.go index 4f36a1e5e62..39ba6edfc36 100644 --- a/metastore/v1/metastore-gen.go +++ b/metastore/v1/metastore-gen.go @@ -1396,28 +1396,31 @@ func (s *Location) MarshalJSON() ([]byte, error) { // LocationMetadata: Metadata about the service in a location. type LocationMetadata struct { + // MultiRegionMetadata: The multi-region metadata if the current region + // is a multi-region. + MultiRegionMetadata *MultiRegionMetadata `json:"multiRegionMetadata,omitempty"` + // SupportedHiveMetastoreVersions: The versions of Hive Metastore that // can be used when creating a new metastore service in this location. // The server guarantees that exactly one HiveMetastoreVersion in the // list will set is_default. SupportedHiveMetastoreVersions []*HiveMetastoreVersion `json:"supportedHiveMetastoreVersions,omitempty"` - // ForceSendFields is a list of field names (e.g. - // "SupportedHiveMetastoreVersions") 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 is a list of field names (e.g. "MultiRegionMetadata") + // 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. - // "SupportedHiveMetastoreVersions") 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. "MultiRegionMetadata") 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:"-"` } @@ -1663,6 +1666,37 @@ func (s *MoveTableToDatabaseRequest) MarshalJSON() ([]byte, error) { type MoveTableToDatabaseResponse struct { } +// MultiRegionMetadata: The metadata for the multi-region that includes +// the constituent regions. The metadata is only populated if the region +// is multi-region. For single region, it will be empty. +type MultiRegionMetadata struct { + // ConstituentRegions: The regions constituting the multi-region. + ConstituentRegions []string `json:"constituentRegions,omitempty"` + + // ForceSendFields is a list of field names (e.g. "ConstituentRegions") + // 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. "ConstituentRegions") 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 *MultiRegionMetadata) MarshalJSON() ([]byte, error) { + type NoMethod MultiRegionMetadata + raw := NoMethod(*s) + return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) +} + // NetworkConfig: Network configuration for the Dataproc Metastore // service.Next available ID: 4 type NetworkConfig struct { diff --git a/metastore/v1alpha/metastore-api.json b/metastore/v1alpha/metastore-api.json index 847fbfe098b..41816c0b8c9 100644 --- a/metastore/v1alpha/metastore-api.json +++ b/metastore/v1alpha/metastore-api.json @@ -1579,7 +1579,7 @@ } } }, - "revision": "20230905", + "revision": "20230926", "rootUrl": "https://metastore.googleapis.com/", "schemas": { "AlterMetadataResourceLocationRequest": { @@ -2301,6 +2301,10 @@ "description": "Metadata about the service in a location.", "id": "LocationMetadata", "properties": { + "multiRegionMetadata": { + "$ref": "MultiRegionMetadata", + "description": "The multi-region metadata if the current region is a multi-region." + }, "supportedHiveMetastoreVersions": { "description": "The versions of Hive Metastore that can be used when creating a new metastore service in this location. The server guarantees that exactly one HiveMetastoreVersion in the list will set is_default.", "items": { @@ -2524,6 +2528,20 @@ "properties": {}, "type": "object" }, + "MultiRegionMetadata": { + "description": "The metadata for the multi-region that includes the constituent regions. The metadata is only populated if the region is multi-region. For single region, it will be empty.", + "id": "MultiRegionMetadata", + "properties": { + "constituentRegions": { + "description": "The regions constituting the multi-region.", + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, "NetworkConfig": { "description": "Network configuration for the Dataproc Metastore service.Next available ID: 4", "id": "NetworkConfig", diff --git a/metastore/v1alpha/metastore-gen.go b/metastore/v1alpha/metastore-gen.go index ccacfd85286..12e4161bb28 100644 --- a/metastore/v1alpha/metastore-gen.go +++ b/metastore/v1alpha/metastore-gen.go @@ -1512,28 +1512,31 @@ func (s *Location) MarshalJSON() ([]byte, error) { // LocationMetadata: Metadata about the service in a location. type LocationMetadata struct { + // MultiRegionMetadata: The multi-region metadata if the current region + // is a multi-region. + MultiRegionMetadata *MultiRegionMetadata `json:"multiRegionMetadata,omitempty"` + // SupportedHiveMetastoreVersions: The versions of Hive Metastore that // can be used when creating a new metastore service in this location. // The server guarantees that exactly one HiveMetastoreVersion in the // list will set is_default. SupportedHiveMetastoreVersions []*HiveMetastoreVersion `json:"supportedHiveMetastoreVersions,omitempty"` - // ForceSendFields is a list of field names (e.g. - // "SupportedHiveMetastoreVersions") 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 is a list of field names (e.g. "MultiRegionMetadata") + // 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. - // "SupportedHiveMetastoreVersions") 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. "MultiRegionMetadata") 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:"-"` } @@ -1813,6 +1816,37 @@ func (s *MoveTableToDatabaseRequest) MarshalJSON() ([]byte, error) { type MoveTableToDatabaseResponse struct { } +// MultiRegionMetadata: The metadata for the multi-region that includes +// the constituent regions. The metadata is only populated if the region +// is multi-region. For single region, it will be empty. +type MultiRegionMetadata struct { + // ConstituentRegions: The regions constituting the multi-region. + ConstituentRegions []string `json:"constituentRegions,omitempty"` + + // ForceSendFields is a list of field names (e.g. "ConstituentRegions") + // 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. "ConstituentRegions") 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 *MultiRegionMetadata) MarshalJSON() ([]byte, error) { + type NoMethod MultiRegionMetadata + raw := NoMethod(*s) + return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) +} + // NetworkConfig: Network configuration for the Dataproc Metastore // service.Next available ID: 4 type NetworkConfig struct { diff --git a/metastore/v1beta/metastore-api.json b/metastore/v1beta/metastore-api.json index c2909911ba4..7b2d5c16a91 100644 --- a/metastore/v1beta/metastore-api.json +++ b/metastore/v1beta/metastore-api.json @@ -1579,7 +1579,7 @@ } } }, - "revision": "20230905", + "revision": "20230926", "rootUrl": "https://metastore.googleapis.com/", "schemas": { "AlterMetadataResourceLocationRequest": { @@ -2301,6 +2301,10 @@ "description": "Metadata about the service in a location.", "id": "LocationMetadata", "properties": { + "multiRegionMetadata": { + "$ref": "MultiRegionMetadata", + "description": "The multi-region metadata if the current region is a multi-region." + }, "supportedHiveMetastoreVersions": { "description": "The versions of Hive Metastore that can be used when creating a new metastore service in this location. The server guarantees that exactly one HiveMetastoreVersion in the list will set is_default.", "items": { @@ -2524,6 +2528,20 @@ "properties": {}, "type": "object" }, + "MultiRegionMetadata": { + "description": "The metadata for the multi-region that includes the constituent regions. The metadata is only populated if the region is multi-region. For single region, it will be empty.", + "id": "MultiRegionMetadata", + "properties": { + "constituentRegions": { + "description": "The regions constituting the multi-region.", + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, "NetworkConfig": { "description": "Network configuration for the Dataproc Metastore service.Next available ID: 4", "id": "NetworkConfig", diff --git a/metastore/v1beta/metastore-gen.go b/metastore/v1beta/metastore-gen.go index b90aceb9399..6a69a8c4ccd 100644 --- a/metastore/v1beta/metastore-gen.go +++ b/metastore/v1beta/metastore-gen.go @@ -1512,28 +1512,31 @@ func (s *Location) MarshalJSON() ([]byte, error) { // LocationMetadata: Metadata about the service in a location. type LocationMetadata struct { + // MultiRegionMetadata: The multi-region metadata if the current region + // is a multi-region. + MultiRegionMetadata *MultiRegionMetadata `json:"multiRegionMetadata,omitempty"` + // SupportedHiveMetastoreVersions: The versions of Hive Metastore that // can be used when creating a new metastore service in this location. // The server guarantees that exactly one HiveMetastoreVersion in the // list will set is_default. SupportedHiveMetastoreVersions []*HiveMetastoreVersion `json:"supportedHiveMetastoreVersions,omitempty"` - // ForceSendFields is a list of field names (e.g. - // "SupportedHiveMetastoreVersions") 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 is a list of field names (e.g. "MultiRegionMetadata") + // 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. - // "SupportedHiveMetastoreVersions") 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. "MultiRegionMetadata") 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:"-"` } @@ -1813,6 +1816,37 @@ func (s *MoveTableToDatabaseRequest) MarshalJSON() ([]byte, error) { type MoveTableToDatabaseResponse struct { } +// MultiRegionMetadata: The metadata for the multi-region that includes +// the constituent regions. The metadata is only populated if the region +// is multi-region. For single region, it will be empty. +type MultiRegionMetadata struct { + // ConstituentRegions: The regions constituting the multi-region. + ConstituentRegions []string `json:"constituentRegions,omitempty"` + + // ForceSendFields is a list of field names (e.g. "ConstituentRegions") + // 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. "ConstituentRegions") 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 *MultiRegionMetadata) MarshalJSON() ([]byte, error) { + type NoMethod MultiRegionMetadata + raw := NoMethod(*s) + return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) +} + // NetworkConfig: Network configuration for the Dataproc Metastore // service.Next available ID: 4 type NetworkConfig struct { diff --git a/playintegrity/v1/playintegrity-api.json b/playintegrity/v1/playintegrity-api.json index da7354e3c4c..7a23714202f 100644 --- a/playintegrity/v1/playintegrity-api.json +++ b/playintegrity/v1/playintegrity-api.json @@ -138,11 +138,11 @@ } } }, - "revision": "20231004", + "revision": "20231005", "rootUrl": "https://playintegrity.googleapis.com/", "schemas": { "AccountActivity": { - "description": "Contains a signal helping apps differentiating between likely genuine users and likely non-genuine traffic (such as accounts being used for fraud, accounts used by automated traffic, or accounts used in device farms) based on the presence and volume of Play store activity.", + "description": "(Restricted Access) Contains a signal helping apps differentiating between likely genuine and likely non-genuine user traffic.", "id": "AccountActivity", "properties": { "activityLevel": { @@ -157,11 +157,11 @@ ], "enumDescriptions": [ "Activity level has not been set.", - "Account activity level is not evaluated because one of the prerequisite conditions is not met (e.g., device is not trusted, the user does not have Play app license)", - "Google Play store activity is unusual for at least one of the user accounts on the device. Google Play recommends checking that this is a real user.", - "Google Play does not have sufficient activity for the user account on the device. The account may be new, or it may lack activity on Google Play.", - "Google Play store activity is typical for the user account or accounts on the device.", - "Google Play store activity is typical for the user account or accounts on the device, with harder to replicate signals." + "Account activity level is not evaluated.", + "Unusual activity for at least one of the user accounts on the device.", + "Insufficient activity to verify the user account on the device.", + "Typical activity for the user account or accounts on the device.", + "Typical for the user account or accounts on the device, with harder to replicate signals." ], "type": "string" } @@ -174,7 +174,7 @@ "properties": { "accountActivity": { "$ref": "AccountActivity", - "description": "Details about the account activity for the user in the scope." + "description": "(Restricted Access) Details about the account activity for the user in the scope." }, "appLicensingVerdict": { "description": "Required. Details about the licensing status of the user for the app in the scope.", diff --git a/playintegrity/v1/playintegrity-gen.go b/playintegrity/v1/playintegrity-gen.go index c32d22a7b78..97b404b0098 100644 --- a/playintegrity/v1/playintegrity-gen.go +++ b/playintegrity/v1/playintegrity-gen.go @@ -159,30 +159,23 @@ type V1Service struct { s *Service } -// AccountActivity: Contains a signal helping apps differentiating -// between likely genuine users and likely non-genuine traffic (such as -// accounts being used for fraud, accounts used by automated traffic, or -// accounts used in device farms) based on the presence and volume of -// Play store activity. +// AccountActivity: (Restricted Access) Contains a signal helping apps +// differentiating between likely genuine and likely non-genuine user +// traffic. type AccountActivity struct { // ActivityLevel: Required. Indicates the activity level of the account. // // Possible values: // "ACTIVITY_LEVEL_UNSPECIFIED" - Activity level has not been set. - // "UNEVALUATED" - Account activity level is not evaluated because one - // of the prerequisite conditions is not met (e.g., device is not - // trusted, the user does not have Play app license) - // "UNUSUAL" - Google Play store activity is unusual for at least one - // of the user accounts on the device. Google Play recommends checking - // that this is a real user. - // "UNKNOWN" - Google Play does not have sufficient activity for the - // user account on the device. The account may be new, or it may lack - // activity on Google Play. - // "TYPICAL_BASIC" - Google Play store activity is typical for the - // user account or accounts on the device. - // "TYPICAL_STRONG" - Google Play store activity is typical for the - // user account or accounts on the device, with harder to replicate - // signals. + // "UNEVALUATED" - Account activity level is not evaluated. + // "UNUSUAL" - Unusual activity for at least one of the user accounts + // on the device. + // "UNKNOWN" - Insufficient activity to verify the user account on the + // device. + // "TYPICAL_BASIC" - Typical activity for the user account or accounts + // on the device. + // "TYPICAL_STRONG" - Typical for the user account or accounts on the + // device, with harder to replicate signals. ActivityLevel string `json:"activityLevel,omitempty"` // ForceSendFields is a list of field names (e.g. "ActivityLevel") to @@ -211,8 +204,8 @@ func (s *AccountActivity) MarshalJSON() ([]byte, error) { // AccountDetails: Contains the account information such as the // licensing status for the user in the scope. type AccountDetails struct { - // AccountActivity: Details about the account activity for the user in - // the scope. + // AccountActivity: (Restricted Access) Details about the account + // activity for the user in the scope. AccountActivity *AccountActivity `json:"accountActivity,omitempty"` // AppLicensingVerdict: Required. Details about the licensing status of