From 9835f38d845e090044304dd6420acf942b1b54f8 Mon Sep 17 00:00:00 2001 From: Yoshi Automation Bot Date: Sat, 21 Oct 2023 00:22:13 -0700 Subject: [PATCH] feat(all): auto-regenerate discovery clients (#2231) --- alloydb/v1/alloydb-api.json | 9 +- alloydb/v1/alloydb-gen.go | 7 +- alloydb/v1beta/alloydb-api.json | 9 +- alloydb/v1beta/alloydb-gen.go | 7 +- beyondcorp/v1alpha/beyondcorp-api.json | 28 +- beyondcorp/v1alpha/beyondcorp-gen.go | 55 +- bigtableadmin/v2/bigtableadmin-api.json | 50 +- bigtableadmin/v2/bigtableadmin-gen.go | 72 ++- compute/v0.alpha/compute-api.json | 4 +- compute/v0.alpha/compute-gen.go | 8 +- datafusion/v1/datafusion-api.json | 15 +- datafusion/v1/datafusion-gen.go | 23 +- datafusion/v1beta1/datafusion-api.json | 57 +- datafusion/v1beta1/datafusion-gen.go | 127 +++- datamigration/v1/datamigration-api.json | 14 +- datamigration/v1/datamigration-gen.go | 8 +- .../v2/doubleclicksearch-api.json | 16 +- doubleclicksearch/v2/doubleclicksearch-gen.go | 8 + gkehub/v1/gkehub-api.json | 376 ++++++++++- gkehub/v1/gkehub-gen.go | 611 ++++++++++++++++++ gkehub/v1alpha/gkehub-api.json | 6 +- gkehub/v1alpha/gkehub-gen.go | 3 + gkeonprem/v1/gkeonprem-api.json | 5 +- gkeonprem/v1/gkeonprem-gen.go | 5 +- .../v1/managedidentities-api.json | 8 +- managedidentities/v1/managedidentities-gen.go | 22 +- .../v1beta1/managedidentities-api.json | 8 +- .../v1beta1/managedidentities-gen.go | 22 +- .../v1alpha1/migrationcenter-api.json | 40 +- .../v1alpha1/migrationcenter-gen.go | 71 +- spanner/v1/spanner-api.json | 46 +- spanner/v1/spanner-gen.go | 85 +++ workstations/v1beta/workstations-api.json | 17 +- workstations/v1beta/workstations-gen.go | 31 + 34 files changed, 1685 insertions(+), 188 deletions(-) diff --git a/alloydb/v1/alloydb-api.json b/alloydb/v1/alloydb-api.json index ae21553fd23..16ea8f28f96 100644 --- a/alloydb/v1/alloydb-api.json +++ b/alloydb/v1/alloydb-api.json @@ -1489,7 +1489,7 @@ } } }, - "revision": "20231006", + "revision": "20231011", "rootUrl": "https://alloydb.googleapis.com/", "schemas": { "AutomatedBackupPolicy": { @@ -3097,7 +3097,8 @@ }, "resourceId": { "$ref": "StorageDatabasecenterPartnerapiV1mainDatabaseResourceId", - "description": "Required. Primary key associated with the Resource" + "deprecated": true, + "description": "Primary key associated with the Resource. resource_id is available in individual feed level as well." }, "resourceMetadata": { "$ref": "StorageDatabasecenterPartnerapiV1mainDatabaseResourceMetadata" @@ -3164,7 +3165,7 @@ "type": "string" }, "resourceContainer": { - "description": "Closest parent container of this resource. In GCP, 'container' refers to a Cloud Resource Manager project. It must be resource name of a Cloud Resource Manager project with the format of \"provider//\", such as \"gcp/projects/123\".", + "description": "Closest parent container of this resource. In GCP, 'container' refers to a Cloud Resource Manager project. It must be resource name of a Cloud Resource Manager project with the format of \"provider//\", such as \"gcp/projects/123\". For GCP provided resources, number should be project number.", "type": "string" }, "resourceName": { @@ -3460,7 +3461,7 @@ "description": "The product this resource represents." }, "resourceContainer": { - "description": "Closest parent Cloud Resource Manager container of this resource. It must be resource name of a Cloud Resource Manager project with the format of \"provider//\", such as \"gcp/projects/123\".", + "description": "Closest parent Cloud Resource Manager container of this resource. It must be resource name of a Cloud Resource Manager project with the format of \"provider//\", such as \"gcp/projects/123\". For GCP provided resources, number should be project number.", "type": "string" }, "resourceName": { diff --git a/alloydb/v1/alloydb-gen.go b/alloydb/v1/alloydb-gen.go index d5c78ef0901..f91f6c7a4ca 100644 --- a/alloydb/v1/alloydb-gen.go +++ b/alloydb/v1/alloydb-gen.go @@ -2678,7 +2678,8 @@ type StorageDatabasecenterPartnerapiV1mainDatabaseResourceFeed struct { // CLs ResourceHealthSignalData *StorageDatabasecenterPartnerapiV1mainDatabaseResourceHealthSignalData `json:"resourceHealthSignalData,omitempty"` - // ResourceId: Required. Primary key associated with the Resource + // ResourceId: Primary key associated with the Resource. resource_id is + // available in individual feed level as well. ResourceId *StorageDatabasecenterPartnerapiV1mainDatabaseResourceId `json:"resourceId,omitempty"` ResourceMetadata *StorageDatabasecenterPartnerapiV1mainDatabaseResourceMetadata `json:"resourceMetadata,omitempty"` @@ -2758,7 +2759,8 @@ type StorageDatabasecenterPartnerapiV1mainDatabaseResourceHealthSignalData struc // ResourceContainer: Closest parent container of this resource. In GCP, // 'container' refers to a Cloud Resource Manager project. It must be // resource name of a Cloud Resource Manager project with the format of - // "provider//", such as "gcp/projects/123". + // "provider//", such as "gcp/projects/123". For GCP provided resources, + // number should be project number. ResourceContainer string `json:"resourceContainer,omitempty"` // ResourceName: Required. Database resource name associated with the @@ -3081,6 +3083,7 @@ type StorageDatabasecenterPartnerapiV1mainDatabaseResourceMetadata struct { // ResourceContainer: Closest parent Cloud Resource Manager container of // this resource. It must be resource name of a Cloud Resource Manager // project with the format of "provider//", such as "gcp/projects/123". + // For GCP provided resources, number should be project number. ResourceContainer string `json:"resourceContainer,omitempty"` // ResourceName: Required. Different from DatabaseResourceId.unique_id, diff --git a/alloydb/v1beta/alloydb-api.json b/alloydb/v1beta/alloydb-api.json index 69f2e7d8c04..53b781ba752 100644 --- a/alloydb/v1beta/alloydb-api.json +++ b/alloydb/v1beta/alloydb-api.json @@ -1486,7 +1486,7 @@ } } }, - "revision": "20231006", + "revision": "20231011", "rootUrl": "https://alloydb.googleapis.com/", "schemas": { "AutomatedBackupPolicy": { @@ -3122,7 +3122,8 @@ }, "resourceId": { "$ref": "StorageDatabasecenterPartnerapiV1mainDatabaseResourceId", - "description": "Required. Primary key associated with the Resource" + "deprecated": true, + "description": "Primary key associated with the Resource. resource_id is available in individual feed level as well." }, "resourceMetadata": { "$ref": "StorageDatabasecenterPartnerapiV1mainDatabaseResourceMetadata" @@ -3189,7 +3190,7 @@ "type": "string" }, "resourceContainer": { - "description": "Closest parent container of this resource. In GCP, 'container' refers to a Cloud Resource Manager project. It must be resource name of a Cloud Resource Manager project with the format of \"provider//\", such as \"gcp/projects/123\".", + "description": "Closest parent container of this resource. In GCP, 'container' refers to a Cloud Resource Manager project. It must be resource name of a Cloud Resource Manager project with the format of \"provider//\", such as \"gcp/projects/123\". For GCP provided resources, number should be project number.", "type": "string" }, "resourceName": { @@ -3485,7 +3486,7 @@ "description": "The product this resource represents." }, "resourceContainer": { - "description": "Closest parent Cloud Resource Manager container of this resource. It must be resource name of a Cloud Resource Manager project with the format of \"provider//\", such as \"gcp/projects/123\".", + "description": "Closest parent Cloud Resource Manager container of this resource. It must be resource name of a Cloud Resource Manager project with the format of \"provider//\", such as \"gcp/projects/123\". For GCP provided resources, number should be project number.", "type": "string" }, "resourceName": { diff --git a/alloydb/v1beta/alloydb-gen.go b/alloydb/v1beta/alloydb-gen.go index f7c0ee0a0a9..86ac19a64f8 100644 --- a/alloydb/v1beta/alloydb-gen.go +++ b/alloydb/v1beta/alloydb-gen.go @@ -2699,7 +2699,8 @@ type StorageDatabasecenterPartnerapiV1mainDatabaseResourceFeed struct { // CLs ResourceHealthSignalData *StorageDatabasecenterPartnerapiV1mainDatabaseResourceHealthSignalData `json:"resourceHealthSignalData,omitempty"` - // ResourceId: Required. Primary key associated with the Resource + // ResourceId: Primary key associated with the Resource. resource_id is + // available in individual feed level as well. ResourceId *StorageDatabasecenterPartnerapiV1mainDatabaseResourceId `json:"resourceId,omitempty"` ResourceMetadata *StorageDatabasecenterPartnerapiV1mainDatabaseResourceMetadata `json:"resourceMetadata,omitempty"` @@ -2779,7 +2780,8 @@ type StorageDatabasecenterPartnerapiV1mainDatabaseResourceHealthSignalData struc // ResourceContainer: Closest parent container of this resource. In GCP, // 'container' refers to a Cloud Resource Manager project. It must be // resource name of a Cloud Resource Manager project with the format of - // "provider//", such as "gcp/projects/123". + // "provider//", such as "gcp/projects/123". For GCP provided resources, + // number should be project number. ResourceContainer string `json:"resourceContainer,omitempty"` // ResourceName: Required. Database resource name associated with the @@ -3102,6 +3104,7 @@ type StorageDatabasecenterPartnerapiV1mainDatabaseResourceMetadata struct { // ResourceContainer: Closest parent Cloud Resource Manager container of // this resource. It must be resource name of a Cloud Resource Manager // project with the format of "provider//", such as "gcp/projects/123". + // For GCP provided resources, number should be project number. ResourceContainer string `json:"resourceContainer,omitempty"` // ResourceName: Required. Different from DatabaseResourceId.unique_id, diff --git a/beyondcorp/v1alpha/beyondcorp-api.json b/beyondcorp/v1alpha/beyondcorp-api.json index e18388d886c..3121298a8e4 100644 --- a/beyondcorp/v1alpha/beyondcorp-api.json +++ b/beyondcorp/v1alpha/beyondcorp-api.json @@ -279,7 +279,7 @@ "type": "string" }, "updateMask": { - "description": "Required. Field mask is used to specify the fields to be overwritten in the PartnerTenant resource by the update. The fields specified in the update_mask are relative to the resource, not the full request. A field will be overwritten if it is in the mask. If the user does not provide a mask then all fields will be overwritten. ", + "description": "Required. Field mask is used to specify the fields to be overwritten in the PartnerTenant resource by the update. The fields specified in the update_mask are relative to the resource, not the full request. A field will be overwritten if it is in the mask. If the user does not provide a mask then all fields will be overwritten. Mutable fields: display_name, partner_metadata, group_information.", "format": "google-fieldmask", "location": "query", "type": "string" @@ -609,7 +609,7 @@ ], "parameters": { "parent": { - "description": "Required. The resource name of the Tenant using the form: `organizations/{organization_id}/locations/global/tenants/{tenant_id}`", + "description": "Required. The resource name of the parent PartnerTenant using the form: `organizations/{organization_id}/locations/global/partnerTenants/{partner_tenant_id}`", "location": "path", "pattern": "^organizations/[^/]+/locations/global/partnerTenants/[^/]+$", "required": true, @@ -672,7 +672,7 @@ ], "parameters": { "name": { - "description": "Required. The resource name of the ProxyConfig using the form: `organizations/{organization_id}/locations/global/tenants/{tenant_id}/proxyConfigs/{proxy_config_id}`", + "description": "Required. The resource name of the ProxyConfig using the form: `organizations/{organization_id}/locations/global/partnerTenants/{partner_tenant_id}/proxyConfigs/{proxy_config_id}`", "location": "path", "pattern": "^organizations/[^/]+/locations/global/partnerTenants/[^/]+/proxyConfigs/[^/]+$", "required": true, @@ -3674,7 +3674,7 @@ } } }, - "revision": "20230927", + "revision": "20231011", "rootUrl": "https://beyondcorp.googleapis.com/", "schemas": { "AllocatedConnection": { @@ -5237,7 +5237,7 @@ "type": "object" }, "GoogleCloudBeyondcorpPartnerservicesV1alphaProxyConfig": { - "description": "Proxy Configuration of a Tenant.", + "description": "Proxy Configuration of a PartnerTenant.", "id": "GoogleCloudBeyondcorpPartnerservicesV1alphaProxyConfig", "properties": { "createTime": { @@ -5259,10 +5259,6 @@ "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" @@ -5284,20 +5280,6 @@ }, "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 75c74ec8645..330f3cfadc3 100644 --- a/beyondcorp/v1alpha/beyondcorp-gen.go +++ b/beyondcorp/v1alpha/beyondcorp-gen.go @@ -2681,7 +2681,7 @@ func (s *GoogleCloudBeyondcorpPartnerservicesV1alphaPartnerTenant) MarshalJSON() } // GoogleCloudBeyondcorpPartnerservicesV1alphaProxyConfig: Proxy -// Configuration of a Tenant. +// Configuration of a PartnerTenant. type GoogleCloudBeyondcorpPartnerservicesV1alphaProxyConfig struct { // CreateTime: Output only. Timestamp when the resource was created. CreateTime string `json:"createTime,omitempty"` @@ -2697,9 +2697,6 @@ 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"` @@ -2742,36 +2739,6 @@ 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. @@ -5473,7 +5440,8 @@ func (c *OrganizationsLocationsGlobalPartnerTenantsPatchCall) RequestId(requestI // PartnerTenant resource by the update. The fields specified in the // update_mask are relative to the resource, not the full request. A // field will be overwritten if it is in the mask. If the user does not -// provide a mask then all fields will be overwritten. +// provide a mask then all fields will be overwritten. Mutable fields: +// display_name, partner_metadata, group_information. func (c *OrganizationsLocationsGlobalPartnerTenantsPatchCall) UpdateMask(updateMask string) *OrganizationsLocationsGlobalPartnerTenantsPatchCall { c.urlParams_.Set("updateMask", updateMask) return c @@ -5591,7 +5559,7 @@ func (c *OrganizationsLocationsGlobalPartnerTenantsPatchCall) Do(opts ...googlea // "type": "string" // }, // "updateMask": { - // "description": "Required. Field mask is used to specify the fields to be overwritten in the PartnerTenant resource by the update. The fields specified in the update_mask are relative to the resource, not the full request. A field will be overwritten if it is in the mask. If the user does not provide a mask then all fields will be overwritten. ", + // "description": "Required. Field mask is used to specify the fields to be overwritten in the PartnerTenant resource by the update. The fields specified in the update_mask are relative to the resource, not the full request. A field will be overwritten if it is in the mask. If the user does not provide a mask then all fields will be overwritten. Mutable fields: display_name, partner_metadata, group_information.", // "format": "google-fieldmask", // "location": "query", // "type": "string" @@ -7207,9 +7175,10 @@ type OrganizationsLocationsGlobalPartnerTenantsProxyConfigsCreateCall struct { // organization and PartnerTenant. Can only be called by on onboarded // Beyondcorp Enterprise partner. // -// - parent: The resource name of the Tenant using the form: -// `organizations/{organization_id}/locations/global/tenants/{tenant_id -// }`. +// - parent: The resource name of the parent PartnerTenant using the +// form: +// `organizations/{organization_id}/locations/global/partnerTenants/{pa +// rtner_tenant_id}`. func (r *OrganizationsLocationsGlobalPartnerTenantsProxyConfigsService) Create(parent string, googlecloudbeyondcorppartnerservicesv1alphaproxyconfig *GoogleCloudBeyondcorpPartnerservicesV1alphaProxyConfig) *OrganizationsLocationsGlobalPartnerTenantsProxyConfigsCreateCall { c := &OrganizationsLocationsGlobalPartnerTenantsProxyConfigsCreateCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.parent = parent @@ -7335,7 +7304,7 @@ func (c *OrganizationsLocationsGlobalPartnerTenantsProxyConfigsCreateCall) Do(op // ], // "parameters": { // "parent": { - // "description": "Required. The resource name of the Tenant using the form: `organizations/{organization_id}/locations/global/tenants/{tenant_id}`", + // "description": "Required. The resource name of the parent PartnerTenant using the form: `organizations/{organization_id}/locations/global/partnerTenants/{partner_tenant_id}`", // "location": "path", // "pattern": "^organizations/[^/]+/locations/global/partnerTenants/[^/]+$", // "required": true, @@ -7530,8 +7499,8 @@ type OrganizationsLocationsGlobalPartnerTenantsProxyConfigsGetCall struct { // Get: Gets details of a single ProxyConfig. // // - name: The resource name of the ProxyConfig using the form: -// `organizations/{organization_id}/locations/global/tenants/{tenant_id -// }/proxyConfigs/{proxy_config_id}`. +// `organizations/{organization_id}/locations/global/partnerTenants/{pa +// rtner_tenant_id}/proxyConfigs/{proxy_config_id}`. func (r *OrganizationsLocationsGlobalPartnerTenantsProxyConfigsService) Get(name string) *OrganizationsLocationsGlobalPartnerTenantsProxyConfigsGetCall { c := &OrganizationsLocationsGlobalPartnerTenantsProxyConfigsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.name = name @@ -7649,7 +7618,7 @@ func (c *OrganizationsLocationsGlobalPartnerTenantsProxyConfigsGetCall) Do(opts // ], // "parameters": { // "name": { - // "description": "Required. The resource name of the ProxyConfig using the form: `organizations/{organization_id}/locations/global/tenants/{tenant_id}/proxyConfigs/{proxy_config_id}`", + // "description": "Required. The resource name of the ProxyConfig using the form: `organizations/{organization_id}/locations/global/partnerTenants/{partner_tenant_id}/proxyConfigs/{proxy_config_id}`", // "location": "path", // "pattern": "^organizations/[^/]+/locations/global/partnerTenants/[^/]+/proxyConfigs/[^/]+$", // "required": true, diff --git a/bigtableadmin/v2/bigtableadmin-api.json b/bigtableadmin/v2/bigtableadmin-api.json index bde195f88bc..9eecdcefc1a 100644 --- a/bigtableadmin/v2/bigtableadmin-api.json +++ b/bigtableadmin/v2/bigtableadmin-api.json @@ -1966,7 +1966,7 @@ } } }, - "revision": "20230824", + "revision": "20231013", "rootUrl": "https://bigtableadmin.googleapis.com/", "schemas": { "AppProfile": { @@ -1989,9 +1989,30 @@ "description": "The unique name of the app profile. Values are of the form `projects/{project}/instances/{instance}/appProfiles/_a-zA-Z0-9*`.", "type": "string" }, + "priority": { + "deprecated": true, + "description": "This field has been deprecated in favor of `standard_isolation.priority`. If you set this field, `standard_isolation.priority` will be set instead. The priority of requests sent using this app profile.", + "enum": [ + "PRIORITY_UNSPECIFIED", + "PRIORITY_LOW", + "PRIORITY_MEDIUM", + "PRIORITY_HIGH" + ], + "enumDescriptions": [ + "Default value. Mapped to PRIORITY_HIGH (the legacy behavior) on creation.", + "", + "", + "" + ], + "type": "string" + }, "singleClusterRouting": { "$ref": "SingleClusterRouting", "description": "Use a single-cluster routing policy." + }, + "standardIsolation": { + "$ref": "StandardIsolation", + "description": "The standard options used for isolating this app profile's traffic from other use cases." } }, "type": "object" @@ -3067,10 +3088,6 @@ "description": "Request message for google.bigtable.admin.v2.BigtableTableAdmin.ModifyColumnFamilies", "id": "ModifyColumnFamiliesRequest", "properties": { - "ignoreWarnings": { - "description": "If true, ignore safety checks when modifying the column families.", - "type": "boolean" - }, "modifications": { "description": "Required. Modifications to be atomically applied to the specified table's families. Entries are applied in order, meaning that earlier modifications can be masked by later ones (in the case of repeated updates to the same family, for example).", "items": { @@ -3366,6 +3383,29 @@ }, "type": "object" }, + "StandardIsolation": { + "description": "Standard options for isolating this app profile's traffic from other use cases.", + "id": "StandardIsolation", + "properties": { + "priority": { + "description": "The priority of requests sent using this app profile.", + "enum": [ + "PRIORITY_UNSPECIFIED", + "PRIORITY_LOW", + "PRIORITY_MEDIUM", + "PRIORITY_HIGH" + ], + "enumDescriptions": [ + "Default value. Mapped to PRIORITY_HIGH (the legacy behavior) on creation.", + "", + "", + "" + ], + "type": "string" + } + }, + "type": "object" + }, "Status": { "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": "Status", diff --git a/bigtableadmin/v2/bigtableadmin-gen.go b/bigtableadmin/v2/bigtableadmin-gen.go index 827c3aab5e7..34877314e8b 100644 --- a/bigtableadmin/v2/bigtableadmin-gen.go +++ b/bigtableadmin/v2/bigtableadmin-gen.go @@ -341,9 +341,26 @@ type AppProfile struct { // `projects/{project}/instances/{instance}/appProfiles/_a-zA-Z0-9*`. Name string `json:"name,omitempty"` + // Priority: This field has been deprecated in favor of + // `standard_isolation.priority`. If you set this field, + // `standard_isolation.priority` will be set instead. The priority of + // requests sent using this app profile. + // + // Possible values: + // "PRIORITY_UNSPECIFIED" - Default value. Mapped to PRIORITY_HIGH + // (the legacy behavior) on creation. + // "PRIORITY_LOW" + // "PRIORITY_MEDIUM" + // "PRIORITY_HIGH" + Priority string `json:"priority,omitempty"` + // SingleClusterRouting: Use a single-cluster routing policy. SingleClusterRouting *SingleClusterRouting `json:"singleClusterRouting,omitempty"` + // StandardIsolation: The standard options used for isolating this app + // profile's traffic from other use cases. + StandardIsolation *StandardIsolation `json:"standardIsolation,omitempty"` + // ServerResponse contains the HTTP response code and headers from the // server. googleapi.ServerResponse `json:"-"` @@ -2462,17 +2479,13 @@ func (s *Modification) MarshalJSON() ([]byte, error) { // ModifyColumnFamiliesRequest: Request message for // google.bigtable.admin.v2.BigtableTableAdmin.ModifyColumnFamilies type ModifyColumnFamiliesRequest struct { - // IgnoreWarnings: If true, ignore safety checks when modifying the - // column families. - IgnoreWarnings bool `json:"ignoreWarnings,omitempty"` - // Modifications: Required. Modifications to be atomically applied to // the specified table's families. Entries are applied in order, meaning // that earlier modifications can be masked by later ones (in the case // of repeated updates to the same family, for example). Modifications []*Modification `json:"modifications,omitempty"` - // ForceSendFields is a list of field names (e.g. "IgnoreWarnings") to + // ForceSendFields is a list of field names (e.g. "Modifications") 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 @@ -2480,13 +2493,12 @@ type ModifyColumnFamiliesRequest struct { // This may be used to include empty fields in Patch requests. ForceSendFields []string `json:"-"` - // NullFields is a list of field names (e.g. "IgnoreWarnings") 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. "Modifications") 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:"-"` } @@ -3103,6 +3115,42 @@ func (s *Split) MarshalJSON() ([]byte, error) { return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) } +// StandardIsolation: Standard options for isolating this app profile's +// traffic from other use cases. +type StandardIsolation struct { + // Priority: The priority of requests sent using this app profile. + // + // Possible values: + // "PRIORITY_UNSPECIFIED" - Default value. Mapped to PRIORITY_HIGH + // (the legacy behavior) on creation. + // "PRIORITY_LOW" + // "PRIORITY_MEDIUM" + // "PRIORITY_HIGH" + Priority string `json:"priority,omitempty"` + + // ForceSendFields is a list of field names (e.g. "Priority") 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. "Priority") 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 *StandardIsolation) MarshalJSON() ([]byte, error) { + type NoMethod StandardIsolation + raw := NoMethod(*s) + return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) +} + // Status: 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 diff --git a/compute/v0.alpha/compute-api.json b/compute/v0.alpha/compute-api.json index 239cc136ff7..0460baf4d82 100644 --- a/compute/v0.alpha/compute-api.json +++ b/compute/v0.alpha/compute-api.json @@ -15168,7 +15168,7 @@ ] }, "getDiagnostics": { - "description": "Returns the interconnectDiagnostics for the specified Interconnect.", + "description": "Returns the interconnectDiagnostics for the specified Interconnect. In the event of a global outage, do not use this API to make decisions about where to redirect your network traffic. Unlike a VLAN attachment, which is regional, a Cloud Interconnect connection is a global resource. A global outage can prevent this API from functioning properly.", "flatPath": "projects/{project}/global/interconnects/{interconnect}/getDiagnostics", "httpMethod": "GET", "id": "compute.interconnects.getDiagnostics", @@ -43489,7 +43489,7 @@ } } }, - "revision": "20231003", + "revision": "20231011", "rootUrl": "https://compute.googleapis.com/", "schemas": { "AWSV4Signature": { diff --git a/compute/v0.alpha/compute-gen.go b/compute/v0.alpha/compute-gen.go index 54ad98b8620..be2599142d4 100644 --- a/compute/v0.alpha/compute-gen.go +++ b/compute/v0.alpha/compute-gen.go @@ -138959,7 +138959,11 @@ type InterconnectsGetDiagnosticsCall struct { } // GetDiagnostics: Returns the interconnectDiagnostics for the specified -// Interconnect. +// Interconnect. In the event of a global outage, do not use this API to +// make decisions about where to redirect your network traffic. Unlike a +// VLAN attachment, which is regional, a Cloud Interconnect connection +// is a global resource. A global outage can prevent this API from +// functioning properly. // // - interconnect: Name of the interconnect resource to query. // - project: Project ID for this request. @@ -139071,7 +139075,7 @@ func (c *InterconnectsGetDiagnosticsCall) Do(opts ...googleapi.CallOption) (*Int } return ret, nil // { - // "description": "Returns the interconnectDiagnostics for the specified Interconnect.", + // "description": "Returns the interconnectDiagnostics for the specified Interconnect. In the event of a global outage, do not use this API to make decisions about where to redirect your network traffic. Unlike a VLAN attachment, which is regional, a Cloud Interconnect connection is a global resource. A global outage can prevent this API from functioning properly.", // "flatPath": "projects/{project}/global/interconnects/{interconnect}/getDiagnostics", // "httpMethod": "GET", // "id": "compute.interconnects.getDiagnostics", diff --git a/datafusion/v1/datafusion-api.json b/datafusion/v1/datafusion-api.json index 20082f49191..3443de731de 100644 --- a/datafusion/v1/datafusion-api.json +++ b/datafusion/v1/datafusion-api.json @@ -737,7 +737,7 @@ } } }, - "revision": "20230627", + "revision": "20231017", "rootUrl": "https://datafusion.googleapis.com/", "schemas": { "Accelerator": { @@ -1055,6 +1055,10 @@ "readOnly": true, "type": "string" }, + "patchRevision": { + "description": "Optional. Current patch revision of the Data Fusion.", + "type": "string" + }, "privateInstance": { "description": "Specifies whether the Data Fusion instance should be private. If set to true, all Data Fusion nodes will have private IP addresses and will not be able to access the public internet.", "type": "boolean" @@ -1142,6 +1146,11 @@ "description": "Current version of the Data Fusion. Only specifiable in Update.", "type": "string" }, + "workforceIdentityServiceEndpoint": { + "description": "Output only. Endpoint on which the Data Fusion UI is accessible to third-party users", + "readOnly": true, + "type": "string" + }, "zone": { "description": "Name of the zone in which the Data Fusion instance will be created. Only DEVELOPER instances use this field.", "type": "string" @@ -1324,7 +1333,7 @@ "description": "Properties of the object. Contains field @type with type URL.", "type": "any" }, - "description": "The normal response of the operation in case of success. If the original method returns no data on success, such as `Delete`, the response is `google.protobuf.Empty`. If the original method is standard `Get`/`Create`/`Update`, the response should be the resource. For other methods, the response should have the type `XxxResponse`, where `Xxx` is the original method name. For example, if the original method name is `TakeSnapshot()`, the inferred response type is `TakeSnapshotResponse`.", + "description": "The normal, successful response of the operation. If the original method returns no data on success, such as `Delete`, the response is `google.protobuf.Empty`. If the original method is standard `Get`/`Create`/`Update`, the response should be the resource. For other methods, the response should have the type `XxxResponse`, where `Xxx` is the original method name. For example, if the original method name is `TakeSnapshot()`, the inferred response type is `TakeSnapshotResponse`.", "type": "object" } }, @@ -1375,7 +1384,7 @@ "type": "object" }, "Policy": { - "description": "An Identity and Access Management (IAM) policy, which specifies access controls for Google Cloud resources. A `Policy` is a collection of `bindings`. A `binding` binds one or more `members`, or principals, to a single `role`. Principals can be user accounts, service accounts, Google groups, and domains (such as G Suite). A `role` is a named list of permissions; each `role` can be an IAM predefined role or a user-created custom role. For some types of Google Cloud resources, a `binding` can also specify a `condition`, which is a logical expression that allows access to a resource only if the expression evaluates to `true`. A condition can add constraints based on attributes of the request, the resource, or both. To learn which resources support conditions in their IAM policies, see the [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-policies). **JSON example:** { \"bindings\": [ { \"role\": \"roles/resourcemanager.organizationAdmin\", \"members\": [ \"user:mike@example.com\", \"group:admins@example.com\", \"domain:google.com\", \"serviceAccount:my-project-id@appspot.gserviceaccount.com\" ] }, { \"role\": \"roles/resourcemanager.organizationViewer\", \"members\": [ \"user:eve@example.com\" ], \"condition\": { \"title\": \"expirable access\", \"description\": \"Does not grant access after Sep 2020\", \"expression\": \"request.time \u003c timestamp('2020-10-01T00:00:00.000Z')\", } } ], \"etag\": \"BwWWja0YfJA=\", \"version\": 3 } **YAML example:** bindings: - members: - user:mike@example.com - group:admins@example.com - domain:google.com - serviceAccount:my-project-id@appspot.gserviceaccount.com role: roles/resourcemanager.organizationAdmin - members: - user:eve@example.com role: roles/resourcemanager.organizationViewer condition: title: expirable access description: Does not grant access after Sep 2020 expression: request.time \u003c timestamp('2020-10-01T00:00:00.000Z') etag: BwWWja0YfJA= version: 3 For a description of IAM and its features, see the [IAM documentation](https://cloud.google.com/iam/docs/).", + "description": "An Identity and Access Management (IAM) policy, which specifies access controls for Google Cloud resources. A `Policy` is a collection of `bindings`. A `binding` binds one or more `members`, or principals, to a single `role`. Principals can be user accounts, service accounts, Google groups, and domains (such as G Suite). A `role` is a named list of permissions; each `role` can be an IAM predefined role or a user-created custom role. For some types of Google Cloud resources, a `binding` can also specify a `condition`, which is a logical expression that allows access to a resource only if the expression evaluates to `true`. A condition can add constraints based on attributes of the request, the resource, or both. To learn which resources support conditions in their IAM policies, see the [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-policies). **JSON example:** ``` { \"bindings\": [ { \"role\": \"roles/resourcemanager.organizationAdmin\", \"members\": [ \"user:mike@example.com\", \"group:admins@example.com\", \"domain:google.com\", \"serviceAccount:my-project-id@appspot.gserviceaccount.com\" ] }, { \"role\": \"roles/resourcemanager.organizationViewer\", \"members\": [ \"user:eve@example.com\" ], \"condition\": { \"title\": \"expirable access\", \"description\": \"Does not grant access after Sep 2020\", \"expression\": \"request.time \u003c timestamp('2020-10-01T00:00:00.000Z')\", } } ], \"etag\": \"BwWWja0YfJA=\", \"version\": 3 } ``` **YAML example:** ``` bindings: - members: - user:mike@example.com - group:admins@example.com - domain:google.com - serviceAccount:my-project-id@appspot.gserviceaccount.com role: roles/resourcemanager.organizationAdmin - members: - user:eve@example.com role: roles/resourcemanager.organizationViewer condition: title: expirable access description: Does not grant access after Sep 2020 expression: request.time \u003c timestamp('2020-10-01T00:00:00.000Z') etag: BwWWja0YfJA= version: 3 ``` For a description of IAM and its features, see the [IAM documentation](https://cloud.google.com/iam/docs/).", "id": "Policy", "properties": { "auditConfigs": { diff --git a/datafusion/v1/datafusion-gen.go b/datafusion/v1/datafusion-gen.go index 0524dca87d6..07c6fee7cc1 100644 --- a/datafusion/v1/datafusion-gen.go +++ b/datafusion/v1/datafusion-gen.go @@ -721,6 +721,9 @@ type Instance struct { // project. P4ServiceAccount string `json:"p4ServiceAccount,omitempty"` + // PatchRevision: Optional. Current patch revision of the Data Fusion. + PatchRevision string `json:"patchRevision,omitempty"` + // PrivateInstance: Specifies whether the Data Fusion instance should be // private. If set to true, all Data Fusion nodes will have private IP // addresses and will not be able to access the public internet. @@ -786,6 +789,10 @@ type Instance struct { // Update. Version string `json:"version,omitempty"` + // WorkforceIdentityServiceEndpoint: Output only. Endpoint on which the + // Data Fusion UI is accessible to third-party users + WorkforceIdentityServiceEndpoint string `json:"workforceIdentityServiceEndpoint,omitempty"` + // Zone: Name of the zone in which the Data Fusion instance will be // created. Only DEVELOPER instances use this field. Zone string `json:"zone,omitempty"` @@ -1124,8 +1131,8 @@ type Operation struct { // `operations/{unique_id}`. Name string `json:"name,omitempty"` - // Response: The normal response of the operation in case of success. If - // the original method returns no data on success, such as `Delete`, the + // Response: The normal, successful response of the operation. If the + // original method returns no data on success, such as `Delete`, the // response is `google.protobuf.Empty`. If the original method is // standard `Get`/`Create`/`Update`, the response should be the // resource. For other methods, the response should have the type @@ -1232,7 +1239,7 @@ func (s *OperationMetadata) MarshalJSON() ([]byte, error) { // both. To learn which resources support conditions in their IAM // policies, see the IAM documentation // (https://cloud.google.com/iam/help/conditions/resource-policies). -// **JSON example:** { "bindings": [ { "role": +// **JSON example:** ``` { "bindings": [ { "role": // "roles/resourcemanager.organizationAdmin", "members": [ // "user:mike@example.com", "group:admins@example.com", // "domain:google.com", @@ -1241,17 +1248,17 @@ func (s *OperationMetadata) MarshalJSON() ([]byte, error) { // "user:eve@example.com" ], "condition": { "title": "expirable access", // "description": "Does not grant access after Sep 2020", "expression": // "request.time < timestamp('2020-10-01T00:00:00.000Z')", } } ], -// "etag": "BwWWja0YfJA=", "version": 3 } **YAML example:** bindings: - -// members: - user:mike@example.com - group:admins@example.com - -// domain:google.com - +// "etag": "BwWWja0YfJA=", "version": 3 } ``` **YAML example:** ``` +// bindings: - members: - user:mike@example.com - +// group:admins@example.com - domain:google.com - // serviceAccount:my-project-id@appspot.gserviceaccount.com role: // roles/resourcemanager.organizationAdmin - members: - // user:eve@example.com role: roles/resourcemanager.organizationViewer // condition: title: expirable access description: Does not grant access // after Sep 2020 expression: request.time < // timestamp('2020-10-01T00:00:00.000Z') etag: BwWWja0YfJA= version: 3 -// For a description of IAM and its features, see the IAM documentation -// (https://cloud.google.com/iam/docs/). +// ``` For a description of IAM and its features, see the IAM +// documentation (https://cloud.google.com/iam/docs/). type Policy struct { // AuditConfigs: Specifies cloud audit logging configuration for this // policy. diff --git a/datafusion/v1beta1/datafusion-api.json b/datafusion/v1beta1/datafusion-api.json index 6188710d81a..a8e843371aa 100644 --- a/datafusion/v1beta1/datafusion-api.json +++ b/datafusion/v1beta1/datafusion-api.json @@ -935,7 +935,7 @@ } } }, - "revision": "20230627", + "revision": "20231017", "rootUrl": "https://datafusion.googleapis.com/", "schemas": { "Accelerator": { @@ -1268,6 +1268,10 @@ "readOnly": true, "type": "string" }, + "patchRevision": { + "description": "Optional. Current patch revision of the Data Fusion.", + "type": "string" + }, "privateInstance": { "description": "Specifies whether the Data Fusion instance should be private. If set to true, all Data Fusion nodes will have private IP addresses and will not be able to access the public internet.", "type": "boolean" @@ -1355,6 +1359,11 @@ "description": "Current version of Data Fusion.", "type": "string" }, + "workforceIdentityServiceEndpoint": { + "description": "Output only. Endpoint on which the Data Fusion UI is accessible to third-party users.", + "readOnly": true, + "type": "string" + }, "zone": { "description": "Name of the zone in which the Data Fusion instance will be created. Only DEVELOPER instances use this field.", "type": "string" @@ -1530,13 +1539,31 @@ "description": "Network configuration for a Data Fusion instance. These configurations are used for peering with the customer network. Configurations are optional when a public Data Fusion instance is to be created. However, providing these configurations allows several benefits, such as reduced network latency while accessing the customer resources from managed Data Fusion instance nodes, as well as access to the customer on-prem resources.", "id": "NetworkConfig", "properties": { + "connectionType": { + "description": "Optional. Type of connection for establishing private IP connectivity between the Data Fusion customer project VPC and the corresponding tenant project from a predefined list of available connection modes. If this field is unspecified for a private instance, VPC peering is used.", + "enum": [ + "CONNECTION_TYPE_UNSPECIFIED", + "VPC_PEERING", + "PRIVATE_SERVICE_CONNECT_INTERFACES" + ], + "enumDescriptions": [ + "No specific connection type was requested, the default value of VPC_PEERING is chosen.", + "Requests the use of VPC peerings for connecting the consumer and tenant projects.", + "Requests the use of Private Service Connect Interfaces for connecting the consumer and tenant projects." + ], + "type": "string" + }, "ipAllocation": { - "description": "The IP range in CIDR notation to use for the managed Data Fusion instance nodes. This range must not overlap with any other ranges used in the Data Fusion instance network.", + "description": "Optional. The IP range in CIDR notation to use for the managed Data Fusion instance nodes. This range must not overlap with any other ranges used in the Data Fusion instance network. This is required only when using connection type VPC_PEERING. Format: a.b.c.d/22 Example: 192.168.0.0/22", "type": "string" }, "network": { - "description": "Name of the network in the customer project with which the Tenant Project will be peered for executing pipelines. In case of shared VPC where the network resides in another host project the network should specified in the form of projects/{host-project-id}/global/networks/{network}", + "description": "Optional. Name of the network in the customer project with which the Tenant Project will be peered for executing pipelines. This is required only when using connection type VPC peering. In case of shared VPC where the network resides in another host project the network should specified in the form of projects/{project-id}/global/networks/{network}. This is only required for connectivity type VPC_PEERING.", "type": "string" + }, + "privateServiceConnectConfig": { + "$ref": "PrivateServiceConnectConfig", + "description": "Optional. Configuration for Private Service Connect. This is required only when using connection type PRIVATE_SERVICE_CONNECT_INTERFACES." } }, "type": "object" @@ -1570,7 +1597,7 @@ "description": "Properties of the object. Contains field @type with type URL.", "type": "any" }, - "description": "The normal response of the operation in case of success. If the original method returns no data on success, such as `Delete`, the response is `google.protobuf.Empty`. If the original method is standard `Get`/`Create`/`Update`, the response should be the resource. For other methods, the response should have the type `XxxResponse`, where `Xxx` is the original method name. For example, if the original method name is `TakeSnapshot()`, the inferred response type is `TakeSnapshotResponse`.", + "description": "The normal, successful response of the operation. If the original method returns no data on success, such as `Delete`, the response is `google.protobuf.Empty`. If the original method is standard `Get`/`Create`/`Update`, the response should be the resource. For other methods, the response should have the type `XxxResponse`, where `Xxx` is the original method name. For example, if the original method name is `TakeSnapshot()`, the inferred response type is `TakeSnapshotResponse`.", "type": "object" } }, @@ -1621,7 +1648,7 @@ "type": "object" }, "Policy": { - "description": "An Identity and Access Management (IAM) policy, which specifies access controls for Google Cloud resources. A `Policy` is a collection of `bindings`. A `binding` binds one or more `members`, or principals, to a single `role`. Principals can be user accounts, service accounts, Google groups, and domains (such as G Suite). A `role` is a named list of permissions; each `role` can be an IAM predefined role or a user-created custom role. For some types of Google Cloud resources, a `binding` can also specify a `condition`, which is a logical expression that allows access to a resource only if the expression evaluates to `true`. A condition can add constraints based on attributes of the request, the resource, or both. To learn which resources support conditions in their IAM policies, see the [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-policies). **JSON example:** { \"bindings\": [ { \"role\": \"roles/resourcemanager.organizationAdmin\", \"members\": [ \"user:mike@example.com\", \"group:admins@example.com\", \"domain:google.com\", \"serviceAccount:my-project-id@appspot.gserviceaccount.com\" ] }, { \"role\": \"roles/resourcemanager.organizationViewer\", \"members\": [ \"user:eve@example.com\" ], \"condition\": { \"title\": \"expirable access\", \"description\": \"Does not grant access after Sep 2020\", \"expression\": \"request.time \u003c timestamp('2020-10-01T00:00:00.000Z')\", } } ], \"etag\": \"BwWWja0YfJA=\", \"version\": 3 } **YAML example:** bindings: - members: - user:mike@example.com - group:admins@example.com - domain:google.com - serviceAccount:my-project-id@appspot.gserviceaccount.com role: roles/resourcemanager.organizationAdmin - members: - user:eve@example.com role: roles/resourcemanager.organizationViewer condition: title: expirable access description: Does not grant access after Sep 2020 expression: request.time \u003c timestamp('2020-10-01T00:00:00.000Z') etag: BwWWja0YfJA= version: 3 For a description of IAM and its features, see the [IAM documentation](https://cloud.google.com/iam/docs/).", + "description": "An Identity and Access Management (IAM) policy, which specifies access controls for Google Cloud resources. A `Policy` is a collection of `bindings`. A `binding` binds one or more `members`, or principals, to a single `role`. Principals can be user accounts, service accounts, Google groups, and domains (such as G Suite). A `role` is a named list of permissions; each `role` can be an IAM predefined role or a user-created custom role. For some types of Google Cloud resources, a `binding` can also specify a `condition`, which is a logical expression that allows access to a resource only if the expression evaluates to `true`. A condition can add constraints based on attributes of the request, the resource, or both. To learn which resources support conditions in their IAM policies, see the [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-policies). **JSON example:** ``` { \"bindings\": [ { \"role\": \"roles/resourcemanager.organizationAdmin\", \"members\": [ \"user:mike@example.com\", \"group:admins@example.com\", \"domain:google.com\", \"serviceAccount:my-project-id@appspot.gserviceaccount.com\" ] }, { \"role\": \"roles/resourcemanager.organizationViewer\", \"members\": [ \"user:eve@example.com\" ], \"condition\": { \"title\": \"expirable access\", \"description\": \"Does not grant access after Sep 2020\", \"expression\": \"request.time \u003c timestamp('2020-10-01T00:00:00.000Z')\", } } ], \"etag\": \"BwWWja0YfJA=\", \"version\": 3 } ``` **YAML example:** ``` bindings: - members: - user:mike@example.com - group:admins@example.com - domain:google.com - serviceAccount:my-project-id@appspot.gserviceaccount.com role: roles/resourcemanager.organizationAdmin - members: - user:eve@example.com role: roles/resourcemanager.organizationViewer condition: title: expirable access description: Does not grant access after Sep 2020 expression: request.time \u003c timestamp('2020-10-01T00:00:00.000Z') etag: BwWWja0YfJA= version: 3 ``` For a description of IAM and its features, see the [IAM documentation](https://cloud.google.com/iam/docs/).", "id": "Policy", "properties": { "auditConfigs": { @@ -1651,6 +1678,26 @@ }, "type": "object" }, + "PrivateServiceConnectConfig": { + "description": "Configuration for using Private Service Connect to establish connectivity between the Data Fusion consumer project and the corresponding tenant project.", + "id": "PrivateServiceConnectConfig", + "properties": { + "effectiveUnreachableCidrBlock": { + "description": "Output only. The CIDR block to which the CDF instance can't route traffic to in the consumer project VPC. The size of this block is /25. The format of this field is governed by RFC 4632. Example: 240.0.0.0/25", + "readOnly": true, + "type": "string" + }, + "networkAttachment": { + "description": "Required. The reference to the network attachment used to establish private connectivity. It will be of the form projects/{project-id}/regions/{region}/networkAttachments/{network-attachment-id}.", + "type": "string" + }, + "unreachableCidrBlock": { + "description": "Optional. Input only. The CIDR block to which the CDF instance can't route traffic to in the consumer project VPC. The size of this block should be at least /25. This range should not overlap with the primary address range of any subnetwork used by the network attachment. This range can be used for other purposes in the consumer VPC as long as there is no requirement for CDF to reach destinations using these addresses. If this value is not provided, the server chooses a non RFC 1918 address range. The format of this field is governed by RFC 4632. Example: 192.168.0.0/25", + "type": "string" + } + }, + "type": "object" + }, "RemoveIamPolicyRequest": { "description": "Request message for RemoveIamPolicy method.", "id": "RemoveIamPolicyRequest", diff --git a/datafusion/v1beta1/datafusion-gen.go b/datafusion/v1beta1/datafusion-gen.go index b679f7b5e28..4ee7e60a55a 100644 --- a/datafusion/v1beta1/datafusion-gen.go +++ b/datafusion/v1beta1/datafusion-gen.go @@ -766,6 +766,9 @@ type Instance struct { // project. P4ServiceAccount string `json:"p4ServiceAccount,omitempty"` + // PatchRevision: Optional. Current patch revision of the Data Fusion. + PatchRevision string `json:"patchRevision,omitempty"` + // PrivateInstance: Specifies whether the Data Fusion instance should be // private. If set to true, all Data Fusion nodes will have private IP // addresses and will not be able to access the public internet. @@ -829,6 +832,10 @@ type Instance struct { // Version: Current version of Data Fusion. Version string `json:"version,omitempty"` + // WorkforceIdentityServiceEndpoint: Output only. Endpoint on which the + // Data Fusion UI is accessible to third-party users. + WorkforceIdentityServiceEndpoint string `json:"workforceIdentityServiceEndpoint,omitempty"` + // Zone: Name of the zone in which the Data Fusion instance will be // created. Only DEVELOPER instances use this field. Zone string `json:"zone,omitempty"` @@ -1174,19 +1181,44 @@ func (s *Namespace) MarshalJSON() ([]byte, error) { // customer resources from managed Data Fusion instance nodes, as well // as access to the customer on-prem resources. type NetworkConfig struct { - // IpAllocation: The IP range in CIDR notation to use for the managed - // Data Fusion instance nodes. This range must not overlap with any - // other ranges used in the Data Fusion instance network. + // ConnectionType: Optional. Type of connection for establishing private + // IP connectivity between the Data Fusion customer project VPC and the + // corresponding tenant project from a predefined list of available + // connection modes. If this field is unspecified for a private + // instance, VPC peering is used. + // + // Possible values: + // "CONNECTION_TYPE_UNSPECIFIED" - No specific connection type was + // requested, the default value of VPC_PEERING is chosen. + // "VPC_PEERING" - Requests the use of VPC peerings for connecting the + // consumer and tenant projects. + // "PRIVATE_SERVICE_CONNECT_INTERFACES" - Requests the use of Private + // Service Connect Interfaces for connecting the consumer and tenant + // projects. + ConnectionType string `json:"connectionType,omitempty"` + + // IpAllocation: Optional. The IP range in CIDR notation to use for the + // managed Data Fusion instance nodes. This range must not overlap with + // any other ranges used in the Data Fusion instance network. This is + // required only when using connection type VPC_PEERING. Format: + // a.b.c.d/22 Example: 192.168.0.0/22 IpAllocation string `json:"ipAllocation,omitempty"` - // Network: Name of the network in the customer project with which the - // Tenant Project will be peered for executing pipelines. In case of + // Network: Optional. Name of the network in the customer project with + // which the Tenant Project will be peered for executing pipelines. This + // is required only when using connection type VPC peering. In case of // shared VPC where the network resides in another host project the // network should specified in the form of - // projects/{host-project-id}/global/networks/{network} + // projects/{project-id}/global/networks/{network}. This is only + // required for connectivity type VPC_PEERING. Network string `json:"network,omitempty"` - // ForceSendFields is a list of field names (e.g. "IpAllocation") to + // PrivateServiceConnectConfig: Optional. Configuration for Private + // Service Connect. This is required only when using connection type + // PRIVATE_SERVICE_CONNECT_INTERFACES. + PrivateServiceConnectConfig *PrivateServiceConnectConfig `json:"privateServiceConnectConfig,omitempty"` + + // ForceSendFields is a list of field names (e.g. "ConnectionType") 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 @@ -1194,12 +1226,13 @@ type NetworkConfig struct { // This may be used to include empty fields in Patch requests. ForceSendFields []string `json:"-"` - // NullFields is a list of field names (e.g. "IpAllocation") 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. "ConnectionType") 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:"-"` } @@ -1234,8 +1267,8 @@ type Operation struct { // `operations/{unique_id}`. Name string `json:"name,omitempty"` - // Response: The normal response of the operation in case of success. If - // the original method returns no data on success, such as `Delete`, the + // Response: The normal, successful response of the operation. If the + // original method returns no data on success, such as `Delete`, the // response is `google.protobuf.Empty`. If the original method is // standard `Get`/`Create`/`Update`, the response should be the // resource. For other methods, the response should have the type @@ -1342,7 +1375,7 @@ func (s *OperationMetadata) MarshalJSON() ([]byte, error) { // both. To learn which resources support conditions in their IAM // policies, see the IAM documentation // (https://cloud.google.com/iam/help/conditions/resource-policies). -// **JSON example:** { "bindings": [ { "role": +// **JSON example:** ``` { "bindings": [ { "role": // "roles/resourcemanager.organizationAdmin", "members": [ // "user:mike@example.com", "group:admins@example.com", // "domain:google.com", @@ -1351,17 +1384,17 @@ func (s *OperationMetadata) MarshalJSON() ([]byte, error) { // "user:eve@example.com" ], "condition": { "title": "expirable access", // "description": "Does not grant access after Sep 2020", "expression": // "request.time < timestamp('2020-10-01T00:00:00.000Z')", } } ], -// "etag": "BwWWja0YfJA=", "version": 3 } **YAML example:** bindings: - -// members: - user:mike@example.com - group:admins@example.com - -// domain:google.com - +// "etag": "BwWWja0YfJA=", "version": 3 } ``` **YAML example:** ``` +// bindings: - members: - user:mike@example.com - +// group:admins@example.com - domain:google.com - // serviceAccount:my-project-id@appspot.gserviceaccount.com role: // roles/resourcemanager.organizationAdmin - members: - // user:eve@example.com role: roles/resourcemanager.organizationViewer // condition: title: expirable access description: Does not grant access // after Sep 2020 expression: request.time < // timestamp('2020-10-01T00:00:00.000Z') etag: BwWWja0YfJA= version: 3 -// For a description of IAM and its features, see the IAM documentation -// (https://cloud.google.com/iam/docs/). +// ``` For a description of IAM and its features, see the IAM +// documentation (https://cloud.google.com/iam/docs/). type Policy struct { // AuditConfigs: Specifies cloud audit logging configuration for this // policy. @@ -1438,6 +1471,58 @@ func (s *Policy) MarshalJSON() ([]byte, error) { return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) } +// PrivateServiceConnectConfig: Configuration for using Private Service +// Connect to establish connectivity between the Data Fusion consumer +// project and the corresponding tenant project. +type PrivateServiceConnectConfig struct { + // EffectiveUnreachableCidrBlock: Output only. The CIDR block to which + // the CDF instance can't route traffic to in the consumer project VPC. + // The size of this block is /25. The format of this field is governed + // by RFC 4632. Example: 240.0.0.0/25 + EffectiveUnreachableCidrBlock string `json:"effectiveUnreachableCidrBlock,omitempty"` + + // NetworkAttachment: Required. The reference to the network attachment + // used to establish private connectivity. It will be of the form + // projects/{project-id}/regions/{region}/networkAttachments/{network-att + // achment-id}. + NetworkAttachment string `json:"networkAttachment,omitempty"` + + // UnreachableCidrBlock: Optional. Input only. The CIDR block to which + // the CDF instance can't route traffic to in the consumer project VPC. + // The size of this block should be at least /25. This range should not + // overlap with the primary address range of any subnetwork used by the + // network attachment. This range can be used for other purposes in the + // consumer VPC as long as there is no requirement for CDF to reach + // destinations using these addresses. If this value is not provided, + // the server chooses a non RFC 1918 address range. The format of this + // field is governed by RFC 4632. Example: 192.168.0.0/25 + UnreachableCidrBlock string `json:"unreachableCidrBlock,omitempty"` + + // ForceSendFields is a list of field names (e.g. + // "EffectiveUnreachableCidrBlock") 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. + // "EffectiveUnreachableCidrBlock") 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 *PrivateServiceConnectConfig) MarshalJSON() ([]byte, error) { + type NoMethod PrivateServiceConnectConfig + raw := NoMethod(*s) + return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) +} + // RemoveIamPolicyRequest: Request message for RemoveIamPolicy method. type RemoveIamPolicyRequest struct { } diff --git a/datamigration/v1/datamigration-api.json b/datamigration/v1/datamigration-api.json index fd690f65849..a3f545166ab 100644 --- a/datamigration/v1/datamigration-api.json +++ b/datamigration/v1/datamigration-api.json @@ -2097,7 +2097,7 @@ } } }, - "revision": "20230912", + "revision": "20231011", "rootUrl": "https://datamigration.googleapis.com/", "schemas": { "AlloyDbConnectionProfile": { @@ -2477,10 +2477,10 @@ "SQL_DATABASE_VERSION_UNSPECIFIED", "MYSQL_5_6", "MYSQL_5_7", + "MYSQL_8_0", "POSTGRES_9_6", "POSTGRES_11", "POSTGRES_10", - "MYSQL_8_0", "POSTGRES_12", "POSTGRES_13", "POSTGRES_14", @@ -2490,10 +2490,10 @@ "Unspecified version.", "MySQL 5.6.", "MySQL 5.7.", + "MySQL 8.0.", "PostgreSQL 9.6.", "PostgreSQL 11.", "PostgreSQL 10.", - "MySQL 8.0.", "PostgreSQL 12.", "PostgreSQL 13.", "PostgreSQL 14.", @@ -2982,7 +2982,7 @@ "type": "string" }, "version": { - "description": "Required. Engine named version, for example 12.c.1.", + "description": "Required. Engine version, for example \"12.c.1\".", "type": "string" } }, @@ -4507,7 +4507,8 @@ "ERROR_RDBMS", "SOURCE_SIZE_EXCEEDS_THRESHOLD", "EXISTING_CONFLICTING_DATABASES", - "PARALLEL_IMPORT_INSUFFICIENT_PRIVILEGE" + "PARALLEL_IMPORT_INSUFFICIENT_PRIVILEGE", + "EXISTING_DATA" ], "enumDescriptions": [ "An unknown error occurred", @@ -4537,7 +4538,8 @@ "There was an underlying RDBMS error.", "The source DB size in Bytes exceeds a certain threshold. The migration might require an increase of quota, or might not be supported.", "The destination DB contains existing databases that are conflicting with those in the source DB.", - "Insufficient privilege to enable the parallelism configuration." + "Insufficient privilege to enable the parallelism configuration.", + "The destination instance contains existing data or user defined entities (for example databases, tables, or functions). You can only migrate to empty instances. Clear your destination instance and retry the migration job." ], "readOnly": true, "type": "string" diff --git a/datamigration/v1/datamigration-gen.go b/datamigration/v1/datamigration-gen.go index 26b205b8f58..c8d63b5878e 100644 --- a/datamigration/v1/datamigration-gen.go +++ b/datamigration/v1/datamigration-gen.go @@ -844,10 +844,10 @@ type CloudSqlSettings struct { // "SQL_DATABASE_VERSION_UNSPECIFIED" - Unspecified version. // "MYSQL_5_6" - MySQL 5.6. // "MYSQL_5_7" - MySQL 5.7. + // "MYSQL_8_0" - MySQL 8.0. // "POSTGRES_9_6" - PostgreSQL 9.6. // "POSTGRES_11" - PostgreSQL 11. // "POSTGRES_10" - PostgreSQL 10. - // "MYSQL_8_0" - MySQL 8.0. // "POSTGRES_12" - PostgreSQL 12. // "POSTGRES_13" - PostgreSQL 13. // "POSTGRES_14" - PostgreSQL 14. @@ -1500,7 +1500,7 @@ type DatabaseEngineInfo struct { // "ORACLE" - The source engine is Oracle. Engine string `json:"engine,omitempty"` - // Version: Required. Engine named version, for example 12.c.1. + // Version: Required. Engine version, for example "12.c.1". Version string `json:"version,omitempty"` // ForceSendFields is a list of field names (e.g. "Engine") to @@ -3565,6 +3565,10 @@ type MigrationJobVerificationError struct { // existing databases that are conflicting with those in the source DB. // "PARALLEL_IMPORT_INSUFFICIENT_PRIVILEGE" - Insufficient privilege // to enable the parallelism configuration. + // "EXISTING_DATA" - The destination instance contains existing data + // or user defined entities (for example databases, tables, or + // functions). You can only migrate to empty instances. Clear your + // destination instance and retry the migration job. ErrorCode string `json:"errorCode,omitempty"` // ErrorDetailMessage: Output only. A specific detailed error message, diff --git a/doubleclicksearch/v2/doubleclicksearch-api.json b/doubleclicksearch/v2/doubleclicksearch-api.json index 5e4a7a807f5..fd999b512c6 100644 --- a/doubleclicksearch/v2/doubleclicksearch-api.json +++ b/doubleclicksearch/v2/doubleclicksearch-api.json @@ -543,7 +543,7 @@ } } }, - "revision": "20221108", + "revision": "20231017", "rootUrl": "https://doubleclicksearch.googleapis.com/", "schemas": { "Availability": { @@ -619,6 +619,20 @@ "format": "int64", "type": "string" }, + "adUserDataConsent": { + "description": "Ad user data consent for this conversion.", + "enum": [ + "UNKNOWN", + "GRANTED", + "DENIED" + ], + "enumDescriptions": [ + "Not specified.", + "Granted.", + "Denied." + ], + "type": "string" + }, "advertiserId": { "description": "DS advertiser ID.", "format": "int64", diff --git a/doubleclicksearch/v2/doubleclicksearch-gen.go b/doubleclicksearch/v2/doubleclicksearch-gen.go index cf8ce20f12b..0c6d7c618fc 100644 --- a/doubleclicksearch/v2/doubleclicksearch-gen.go +++ b/doubleclicksearch/v2/doubleclicksearch-gen.go @@ -244,6 +244,14 @@ type Conversion struct { // AdId: DS ad ID. AdId int64 `json:"adId,omitempty,string"` + // AdUserDataConsent: Ad user data consent for this conversion. + // + // Possible values: + // "UNKNOWN" - Not specified. + // "GRANTED" - Granted. + // "DENIED" - Denied. + AdUserDataConsent string `json:"adUserDataConsent,omitempty"` + // AdvertiserId: DS advertiser ID. AdvertiserId int64 `json:"advertiserId,omitempty,string"` diff --git a/gkehub/v1/gkehub-api.json b/gkehub/v1/gkehub-api.json index 717eef00f2e..9c5f9f37ea8 100644 --- a/gkehub/v1/gkehub-api.json +++ b/gkehub/v1/gkehub-api.json @@ -1834,7 +1834,7 @@ } } }, - "revision": "20231006", + "revision": "20231013", "rootUrl": "https://gkehub.googleapis.com/", "schemas": { "AppDevExperienceFeatureSpec": { @@ -2013,6 +2013,10 @@ "configmanagement": { "$ref": "ConfigManagementMembershipSpec", "description": "Config Management-specific spec." + }, + "policycontroller": { + "$ref": "PolicyControllerMembershipSpec", + "description": "Policy Controller spec." } }, "type": "object" @@ -3973,6 +3977,10 @@ "origin": { "$ref": "Origin", "description": "Whether this per-Membership spec was inherited from a fleet-level default. This field can be updated by users by either overriding a Membership config (updated to USER implicitly) or setting to FLEET explicitly." + }, + "policycontroller": { + "$ref": "PolicyControllerMembershipSpec", + "description": "Policy Controller spec." } }, "type": "object" @@ -3997,6 +4005,10 @@ "$ref": "IdentityServiceMembershipState", "description": "Identity Service-specific state." }, + "policycontroller": { + "$ref": "PolicyControllerMembershipState", + "description": "Policycontroller-specific state." + }, "servicemesh": { "$ref": "ServiceMeshMembershipState", "description": "Service Mesh-specific state." @@ -4344,6 +4356,368 @@ }, "type": "object" }, + "PolicyControllerBundleInstallSpec": { + "description": "BundleInstallSpec is the specification configuration for a single managed bundle.", + "id": "PolicyControllerBundleInstallSpec", + "properties": { + "exemptedNamespaces": { + "description": "The set of namespaces to be exempted from the bundle.", + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, + "PolicyControllerHubConfig": { + "description": "Configuration for Policy Controller", + "id": "PolicyControllerHubConfig", + "properties": { + "auditIntervalSeconds": { + "description": "Sets the interval for Policy Controller Audit Scans (in seconds). When set to 0, this disables audit functionality altogether.", + "format": "int64", + "type": "string" + }, + "constraintViolationLimit": { + "description": "The maximum number of audit violations to be stored in a constraint. If not set, the internal default (currently 20) will be used.", + "format": "int64", + "type": "string" + }, + "deploymentConfigs": { + "additionalProperties": { + "$ref": "PolicyControllerPolicyControllerDeploymentConfig" + }, + "description": "Map of deployment configs to deployments (\"admission\", \"audit\", \"mutation').", + "type": "object" + }, + "exemptableNamespaces": { + "description": "The set of namespaces that are excluded from Policy Controller checks. Namespaces do not need to currently exist on the cluster.", + "items": { + "type": "string" + }, + "type": "array" + }, + "installSpec": { + "description": "The install_spec represents the intended state specified by the latest request that mutated install_spec in the feature spec, not the lifecycle state of the feature observed by the Hub feature controller that is reported in the feature state.", + "enum": [ + "INSTALL_SPEC_UNSPECIFIED", + "INSTALL_SPEC_NOT_INSTALLED", + "INSTALL_SPEC_ENABLED", + "INSTALL_SPEC_SUSPENDED", + "INSTALL_SPEC_DETACHED" + ], + "enumDescriptions": [ + "Spec is unknown.", + "Request to uninstall Policy Controller.", + "Request to install and enable Policy Controller.", + "Request to suspend Policy Controller i.e. its webhooks. If Policy Controller is not installed, it will be installed but suspended.", + "Request to stop all reconciliation actions by PoCo Hub controller. This is a breakglass mechanism to stop PoCo Hub from affecting cluster resources." + ], + "type": "string" + }, + "logDeniesEnabled": { + "description": "Logs all denies and dry run failures.", + "type": "boolean" + }, + "monitoring": { + "$ref": "PolicyControllerMonitoringConfig", + "description": "Monitoring specifies the configuration of monitoring." + }, + "mutationEnabled": { + "description": "Enables the ability to mutate resources using Policy Controller.", + "type": "boolean" + }, + "policyContent": { + "$ref": "PolicyControllerPolicyContentSpec", + "description": "Specifies the desired policy content on the cluster" + }, + "referentialRulesEnabled": { + "description": "Enables the ability to use Constraint Templates that reference to objects other than the object currently being evaluated.", + "type": "boolean" + } + }, + "type": "object" + }, + "PolicyControllerMembershipSpec": { + "description": "**Policy Controller**: Configuration for a single cluster. Intended to parallel the PolicyController CR.", + "id": "PolicyControllerMembershipSpec", + "properties": { + "policyControllerHubConfig": { + "$ref": "PolicyControllerHubConfig", + "description": "Policy Controller configuration for the cluster." + }, + "version": { + "description": "Version of Policy Controller installed.", + "type": "string" + } + }, + "type": "object" + }, + "PolicyControllerMembershipState": { + "description": "**Policy Controller**: State for a single cluster.", + "id": "PolicyControllerMembershipState", + "properties": { + "componentStates": { + "additionalProperties": { + "$ref": "PolicyControllerOnClusterState" + }, + "description": "Currently these include (also serving as map keys): 1. \"admission\" 2. \"audit\" 3. \"mutation\"", + "type": "object" + }, + "policyContentState": { + "$ref": "PolicyControllerPolicyContentState", + "description": "The overall content state observed by the Hub Feature controller." + }, + "state": { + "description": "The overall Policy Controller lifecycle state observed by the Hub Feature controller.", + "enum": [ + "LIFECYCLE_STATE_UNSPECIFIED", + "NOT_INSTALLED", + "INSTALLING", + "ACTIVE", + "UPDATING", + "DECOMMISSIONING", + "CLUSTER_ERROR", + "HUB_ERROR", + "SUSPENDED", + "DETACHED" + ], + "enumDescriptions": [ + "The lifecycle state is unspecified.", + "The PC does not exist on the given cluster, and no k8s resources of any type that are associated with the PC should exist there. The cluster does not possess a membership with the PCH.", + "The PCH possesses a Membership, however the PC is not fully installed on the cluster. In this state the hub can be expected to be taking actions to install the PC on the cluster.", + "The PC is fully installed on the cluster and in an operational mode. In this state PCH will be reconciling state with the PC, and the PC will be performing it's operational tasks per that software. Entering a READY state requires that the hub has confirmed the PC is installed and its pods are operational with the version of the PC the PCH expects.", + "The PC is fully installed, but in the process of changing the configuration (including changing the version of PC either up and down, or modifying the manifests of PC) of the resources running on the cluster. The PCH has a Membership, is aware of the version the cluster should be running in, but has not confirmed for itself that the PC is running with that version.", + "The PC may have resources on the cluster, but the PCH wishes to remove the Membership. The Membership still exists.", + "The PC is not operational, and the PCH is unable to act to make it operational. Entering a CLUSTER_ERROR state happens automatically when the PCH determines that a PC installed on the cluster is non-operative or that the cluster does not meet requirements set for the PCH to administer the cluster but has nevertheless been given an instruction to do so (such as 'install').", + "In this state, the PC may still be operational, and only the PCH is unable to act. The hub should not issue instructions to change the PC state, or otherwise interfere with the on-cluster resources. Entering a HUB_ERROR state happens automatically when the PCH determines the hub is in an unhealthy state and it wishes to 'take hands off' to avoid corrupting the PC or other data.", + "Policy Controller (PC) is installed but suspended. This means that the policies are not enforced, but violations are still recorded (through audit).", + "PoCo Hub is not taking any action to reconcile cluster objects. Changes to those objects will not be overwritten by PoCo Hub." + ], + "type": "string" + } + }, + "type": "object" + }, + "PolicyControllerMonitoringConfig": { + "description": "MonitoringConfig specifies the backends Policy Controller should export metrics to. For example, to specify metrics should be exported to Cloud Monitoring and Prometheus, specify backends: [\"cloudmonitoring\", \"prometheus\"]", + "id": "PolicyControllerMonitoringConfig", + "properties": { + "backends": { + "description": "Specifies the list of backends Policy Controller will export to. An empty list would effectively disable metrics export.", + "items": { + "enum": [ + "MONITORING_BACKEND_UNSPECIFIED", + "PROMETHEUS", + "CLOUD_MONITORING" + ], + "enumDescriptions": [ + "Backend cannot be determined", + "Prometheus backend for monitoring", + "Stackdriver/Cloud Monitoring backend for monitoring" + ], + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, + "PolicyControllerOnClusterState": { + "description": "OnClusterState represents the state of a sub-component of Policy Controller.", + "id": "PolicyControllerOnClusterState", + "properties": { + "details": { + "description": "Surface potential errors or information logs.", + "type": "string" + }, + "state": { + "description": "The lifecycle state of this component.", + "enum": [ + "LIFECYCLE_STATE_UNSPECIFIED", + "NOT_INSTALLED", + "INSTALLING", + "ACTIVE", + "UPDATING", + "DECOMMISSIONING", + "CLUSTER_ERROR", + "HUB_ERROR", + "SUSPENDED", + "DETACHED" + ], + "enumDescriptions": [ + "The lifecycle state is unspecified.", + "The PC does not exist on the given cluster, and no k8s resources of any type that are associated with the PC should exist there. The cluster does not possess a membership with the PCH.", + "The PCH possesses a Membership, however the PC is not fully installed on the cluster. In this state the hub can be expected to be taking actions to install the PC on the cluster.", + "The PC is fully installed on the cluster and in an operational mode. In this state PCH will be reconciling state with the PC, and the PC will be performing it's operational tasks per that software. Entering a READY state requires that the hub has confirmed the PC is installed and its pods are operational with the version of the PC the PCH expects.", + "The PC is fully installed, but in the process of changing the configuration (including changing the version of PC either up and down, or modifying the manifests of PC) of the resources running on the cluster. The PCH has a Membership, is aware of the version the cluster should be running in, but has not confirmed for itself that the PC is running with that version.", + "The PC may have resources on the cluster, but the PCH wishes to remove the Membership. The Membership still exists.", + "The PC is not operational, and the PCH is unable to act to make it operational. Entering a CLUSTER_ERROR state happens automatically when the PCH determines that a PC installed on the cluster is non-operative or that the cluster does not meet requirements set for the PCH to administer the cluster but has nevertheless been given an instruction to do so (such as 'install').", + "In this state, the PC may still be operational, and only the PCH is unable to act. The hub should not issue instructions to change the PC state, or otherwise interfere with the on-cluster resources. Entering a HUB_ERROR state happens automatically when the PCH determines the hub is in an unhealthy state and it wishes to 'take hands off' to avoid corrupting the PC or other data.", + "Policy Controller (PC) is installed but suspended. This means that the policies are not enforced, but violations are still recorded (through audit).", + "PoCo Hub is not taking any action to reconcile cluster objects. Changes to those objects will not be overwritten by PoCo Hub." + ], + "type": "string" + } + }, + "type": "object" + }, + "PolicyControllerPolicyContentSpec": { + "description": "PolicyContentSpec defines the user's desired content configuration on the cluster.", + "id": "PolicyControllerPolicyContentSpec", + "properties": { + "bundles": { + "additionalProperties": { + "$ref": "PolicyControllerBundleInstallSpec" + }, + "description": "map of bundle name to BundleInstallSpec. The bundle name maps to the `bundleName` key in the `policycontroller.gke.io/constraintData` annotation on a constraint.", + "type": "object" + }, + "templateLibrary": { + "$ref": "PolicyControllerTemplateLibraryConfig", + "description": "Configures the installation of the Template Library." + } + }, + "type": "object" + }, + "PolicyControllerPolicyContentState": { + "description": "The state of the policy controller policy content", + "id": "PolicyControllerPolicyContentState", + "properties": { + "bundleStates": { + "additionalProperties": { + "$ref": "PolicyControllerOnClusterState" + }, + "description": "The state of the any bundles included in the chosen version of the manifest", + "type": "object" + }, + "referentialSyncConfigState": { + "$ref": "PolicyControllerOnClusterState", + "description": "The state of the referential data sync configuration. This could represent the state of either the syncSet object(s) or the config object, depending on the version of PoCo configured by the user." + }, + "templateLibraryState": { + "$ref": "PolicyControllerOnClusterState", + "description": "The state of the template library" + } + }, + "type": "object" + }, + "PolicyControllerPolicyControllerDeploymentConfig": { + "description": "Deployment-specific configuration.", + "id": "PolicyControllerPolicyControllerDeploymentConfig", + "properties": { + "containerResources": { + "$ref": "PolicyControllerResourceRequirements", + "description": "Container resource requirements." + }, + "podAffinity": { + "description": "Pod affinity configuration.", + "enum": [ + "AFFINITY_UNSPECIFIED", + "NO_AFFINITY", + "ANTI_AFFINITY" + ], + "enumDescriptions": [ + "No affinity configuration has been specified.", + "Affinity configurations will be removed from the deployment.", + "Anti-affinity configuration will be applied to this deployment. Default for admissions deployment." + ], + "type": "string" + }, + "podAntiAffinity": { + "description": "Pod anti-affinity enablement.", + "type": "boolean" + }, + "podTolerations": { + "description": "Pod tolerations of node taints.", + "items": { + "$ref": "PolicyControllerToleration" + }, + "type": "array" + }, + "replicaCount": { + "description": "Pod replica count.", + "format": "int64", + "type": "string" + } + }, + "type": "object" + }, + "PolicyControllerResourceList": { + "description": "ResourceList contains container resource requirements.", + "id": "PolicyControllerResourceList", + "properties": { + "cpu": { + "description": "CPU requirement expressed in Kubernetes resource units.", + "type": "string" + }, + "memory": { + "description": "Memory requirement expressed in Kubernetes resource units.", + "type": "string" + } + }, + "type": "object" + }, + "PolicyControllerResourceRequirements": { + "description": "ResourceRequirements describes the compute resource requirements.", + "id": "PolicyControllerResourceRequirements", + "properties": { + "limits": { + "$ref": "PolicyControllerResourceList", + "description": "Limits describes the maximum amount of compute resources allowed for use by the running container." + }, + "requests": { + "$ref": "PolicyControllerResourceList", + "description": "Requests describes the amount of compute resources reserved for the container by the kube-scheduler." + } + }, + "type": "object" + }, + "PolicyControllerTemplateLibraryConfig": { + "description": "The config specifying which default library templates to install.", + "id": "PolicyControllerTemplateLibraryConfig", + "properties": { + "installation": { + "description": "Configures the manner in which the template library is installed on the cluster.", + "enum": [ + "INSTALLATION_UNSPECIFIED", + "NOT_INSTALLED", + "ALL" + ], + "enumDescriptions": [ + "No installation strategy has been specified.", + "Do not install the template library.", + "Install the entire template library." + ], + "type": "string" + } + }, + "type": "object" + }, + "PolicyControllerToleration": { + "description": "Toleration of a node taint.", + "id": "PolicyControllerToleration", + "properties": { + "effect": { + "description": "Matches a taint effect.", + "type": "string" + }, + "key": { + "description": "Matches a taint key (not necessarily unique).", + "type": "string" + }, + "operator": { + "description": "Matches a taint operator.", + "type": "string" + }, + "value": { + "description": "Matches a taint value.", + "type": "string" + } + }, + "type": "object" + }, "RBACRoleBinding": { "description": "RBACRoleBinding represents a rbacrolebinding across the Fleet", "id": "RBACRoleBinding", diff --git a/gkehub/v1/gkehub-gen.go b/gkehub/v1/gkehub-gen.go index af958422fa3..b200c1bc40a 100644 --- a/gkehub/v1/gkehub-gen.go +++ b/gkehub/v1/gkehub-gen.go @@ -689,6 +689,9 @@ type CommonFleetDefaultMemberConfigSpec struct { // Configmanagement: Config Management-specific spec. Configmanagement *ConfigManagementMembershipSpec `json:"configmanagement,omitempty"` + // Policycontroller: Policy Controller spec. + Policycontroller *PolicyControllerMembershipSpec `json:"policycontroller,omitempty"` + // ForceSendFields is a list of field names (e.g. "Configmanagement") to // unconditionally include in API requests. By default, fields with // empty or default values are omitted from API requests. However, any @@ -3746,6 +3749,9 @@ type MembershipFeatureSpec struct { // setting to FLEET explicitly. Origin *Origin `json:"origin,omitempty"` + // Policycontroller: Policy Controller spec. + Policycontroller *PolicyControllerMembershipSpec `json:"policycontroller,omitempty"` + // ForceSendFields is a list of field names (e.g. "Configmanagement") to // unconditionally include in API requests. By default, fields with // empty or default values are omitted from API requests. However, any @@ -3785,6 +3791,9 @@ type MembershipFeatureState struct { // Identityservice: Identity Service-specific state. Identityservice *IdentityServiceMembershipState `json:"identityservice,omitempty"` + // Policycontroller: Policycontroller-specific state. + Policycontroller *PolicyControllerMembershipState `json:"policycontroller,omitempty"` + // Servicemesh: Service Mesh-specific state. Servicemesh *ServiceMeshMembershipState `json:"servicemesh,omitempty"` @@ -4394,6 +4403,608 @@ func (s *Policy) MarshalJSON() ([]byte, error) { return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) } +// PolicyControllerBundleInstallSpec: BundleInstallSpec is the +// specification configuration for a single managed bundle. +type PolicyControllerBundleInstallSpec struct { + // ExemptedNamespaces: The set of namespaces to be exempted from the + // bundle. + ExemptedNamespaces []string `json:"exemptedNamespaces,omitempty"` + + // ForceSendFields is a list of field names (e.g. "ExemptedNamespaces") + // 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. "ExemptedNamespaces") 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 *PolicyControllerBundleInstallSpec) MarshalJSON() ([]byte, error) { + type NoMethod PolicyControllerBundleInstallSpec + raw := NoMethod(*s) + return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) +} + +// PolicyControllerHubConfig: Configuration for Policy Controller +type PolicyControllerHubConfig struct { + // AuditIntervalSeconds: Sets the interval for Policy Controller Audit + // Scans (in seconds). When set to 0, this disables audit functionality + // altogether. + AuditIntervalSeconds int64 `json:"auditIntervalSeconds,omitempty,string"` + + // ConstraintViolationLimit: The maximum number of audit violations to + // be stored in a constraint. If not set, the internal default + // (currently 20) will be used. + ConstraintViolationLimit int64 `json:"constraintViolationLimit,omitempty,string"` + + // DeploymentConfigs: Map of deployment configs to deployments + // ("admission", "audit", "mutation'). + DeploymentConfigs map[string]PolicyControllerPolicyControllerDeploymentConfig `json:"deploymentConfigs,omitempty"` + + // ExemptableNamespaces: The set of namespaces that are excluded from + // Policy Controller checks. Namespaces do not need to currently exist + // on the cluster. + ExemptableNamespaces []string `json:"exemptableNamespaces,omitempty"` + + // InstallSpec: The install_spec represents the intended state specified + // by the latest request that mutated install_spec in the feature spec, + // not the lifecycle state of the feature observed by the Hub feature + // controller that is reported in the feature state. + // + // Possible values: + // "INSTALL_SPEC_UNSPECIFIED" - Spec is unknown. + // "INSTALL_SPEC_NOT_INSTALLED" - Request to uninstall Policy + // Controller. + // "INSTALL_SPEC_ENABLED" - Request to install and enable Policy + // Controller. + // "INSTALL_SPEC_SUSPENDED" - Request to suspend Policy Controller + // i.e. its webhooks. If Policy Controller is not installed, it will be + // installed but suspended. + // "INSTALL_SPEC_DETACHED" - Request to stop all reconciliation + // actions by PoCo Hub controller. This is a breakglass mechanism to + // stop PoCo Hub from affecting cluster resources. + InstallSpec string `json:"installSpec,omitempty"` + + // LogDeniesEnabled: Logs all denies and dry run failures. + LogDeniesEnabled bool `json:"logDeniesEnabled,omitempty"` + + // Monitoring: Monitoring specifies the configuration of monitoring. + Monitoring *PolicyControllerMonitoringConfig `json:"monitoring,omitempty"` + + // MutationEnabled: Enables the ability to mutate resources using Policy + // Controller. + MutationEnabled bool `json:"mutationEnabled,omitempty"` + + // PolicyContent: Specifies the desired policy content on the cluster + PolicyContent *PolicyControllerPolicyContentSpec `json:"policyContent,omitempty"` + + // ReferentialRulesEnabled: Enables the ability to use Constraint + // Templates that reference to objects other than the object currently + // being evaluated. + ReferentialRulesEnabled bool `json:"referentialRulesEnabled,omitempty"` + + // ForceSendFields is a list of field names (e.g. + // "AuditIntervalSeconds") 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. "AuditIntervalSeconds") 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 *PolicyControllerHubConfig) MarshalJSON() ([]byte, error) { + type NoMethod PolicyControllerHubConfig + raw := NoMethod(*s) + return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) +} + +// PolicyControllerMembershipSpec: **Policy Controller**: Configuration +// for a single cluster. Intended to parallel the PolicyController CR. +type PolicyControllerMembershipSpec struct { + // PolicyControllerHubConfig: Policy Controller configuration for the + // cluster. + PolicyControllerHubConfig *PolicyControllerHubConfig `json:"policyControllerHubConfig,omitempty"` + + // Version: Version of Policy Controller installed. + Version string `json:"version,omitempty"` + + // ForceSendFields is a list of field names (e.g. + // "PolicyControllerHubConfig") 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. + // "PolicyControllerHubConfig") 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 *PolicyControllerMembershipSpec) MarshalJSON() ([]byte, error) { + type NoMethod PolicyControllerMembershipSpec + raw := NoMethod(*s) + return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) +} + +// PolicyControllerMembershipState: **Policy Controller**: State for a +// single cluster. +type PolicyControllerMembershipState struct { + // ComponentStates: Currently these include (also serving as map keys): + // 1. "admission" 2. "audit" 3. "mutation" + ComponentStates map[string]PolicyControllerOnClusterState `json:"componentStates,omitempty"` + + // PolicyContentState: The overall content state observed by the Hub + // Feature controller. + PolicyContentState *PolicyControllerPolicyContentState `json:"policyContentState,omitempty"` + + // State: The overall Policy Controller lifecycle state observed by the + // Hub Feature controller. + // + // Possible values: + // "LIFECYCLE_STATE_UNSPECIFIED" - The lifecycle state is unspecified. + // "NOT_INSTALLED" - The PC does not exist on the given cluster, and + // no k8s resources of any type that are associated with the PC should + // exist there. The cluster does not possess a membership with the PCH. + // "INSTALLING" - The PCH possesses a Membership, however the PC is + // not fully installed on the cluster. In this state the hub can be + // expected to be taking actions to install the PC on the cluster. + // "ACTIVE" - The PC is fully installed on the cluster and in an + // operational mode. In this state PCH will be reconciling state with + // the PC, and the PC will be performing it's operational tasks per that + // software. Entering a READY state requires that the hub has confirmed + // the PC is installed and its pods are operational with the version of + // the PC the PCH expects. + // "UPDATING" - The PC is fully installed, but in the process of + // changing the configuration (including changing the version of PC + // either up and down, or modifying the manifests of PC) of the + // resources running on the cluster. The PCH has a Membership, is aware + // of the version the cluster should be running in, but has not + // confirmed for itself that the PC is running with that version. + // "DECOMMISSIONING" - The PC may have resources on the cluster, but + // the PCH wishes to remove the Membership. The Membership still exists. + // "CLUSTER_ERROR" - The PC is not operational, and the PCH is unable + // to act to make it operational. Entering a CLUSTER_ERROR state happens + // automatically when the PCH determines that a PC installed on the + // cluster is non-operative or that the cluster does not meet + // requirements set for the PCH to administer the cluster but has + // nevertheless been given an instruction to do so (such as 'install'). + // "HUB_ERROR" - In this state, the PC may still be operational, and + // only the PCH is unable to act. The hub should not issue instructions + // to change the PC state, or otherwise interfere with the on-cluster + // resources. Entering a HUB_ERROR state happens automatically when the + // PCH determines the hub is in an unhealthy state and it wishes to + // 'take hands off' to avoid corrupting the PC or other data. + // "SUSPENDED" - Policy Controller (PC) is installed but suspended. + // This means that the policies are not enforced, but violations are + // still recorded (through audit). + // "DETACHED" - PoCo Hub is not taking any action to reconcile cluster + // objects. Changes to those objects will not be overwritten by PoCo + // Hub. + State string `json:"state,omitempty"` + + // ForceSendFields is a list of field names (e.g. "ComponentStates") 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. "ComponentStates") 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 *PolicyControllerMembershipState) MarshalJSON() ([]byte, error) { + type NoMethod PolicyControllerMembershipState + raw := NoMethod(*s) + return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) +} + +// PolicyControllerMonitoringConfig: MonitoringConfig specifies the +// backends Policy Controller should export metrics to. For example, to +// specify metrics should be exported to Cloud Monitoring and +// Prometheus, specify backends: ["cloudmonitoring", "prometheus"] +type PolicyControllerMonitoringConfig struct { + // Backends: Specifies the list of backends Policy Controller will + // export to. An empty list would effectively disable metrics export. + // + // Possible values: + // "MONITORING_BACKEND_UNSPECIFIED" - Backend cannot be determined + // "PROMETHEUS" - Prometheus backend for monitoring + // "CLOUD_MONITORING" - Stackdriver/Cloud Monitoring backend for + // monitoring + Backends []string `json:"backends,omitempty"` + + // ForceSendFields is a list of field names (e.g. "Backends") 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. "Backends") 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 *PolicyControllerMonitoringConfig) MarshalJSON() ([]byte, error) { + type NoMethod PolicyControllerMonitoringConfig + raw := NoMethod(*s) + return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) +} + +// PolicyControllerOnClusterState: OnClusterState represents the state +// of a sub-component of Policy Controller. +type PolicyControllerOnClusterState struct { + // Details: Surface potential errors or information logs. + Details string `json:"details,omitempty"` + + // State: The lifecycle state of this component. + // + // Possible values: + // "LIFECYCLE_STATE_UNSPECIFIED" - The lifecycle state is unspecified. + // "NOT_INSTALLED" - The PC does not exist on the given cluster, and + // no k8s resources of any type that are associated with the PC should + // exist there. The cluster does not possess a membership with the PCH. + // "INSTALLING" - The PCH possesses a Membership, however the PC is + // not fully installed on the cluster. In this state the hub can be + // expected to be taking actions to install the PC on the cluster. + // "ACTIVE" - The PC is fully installed on the cluster and in an + // operational mode. In this state PCH will be reconciling state with + // the PC, and the PC will be performing it's operational tasks per that + // software. Entering a READY state requires that the hub has confirmed + // the PC is installed and its pods are operational with the version of + // the PC the PCH expects. + // "UPDATING" - The PC is fully installed, but in the process of + // changing the configuration (including changing the version of PC + // either up and down, or modifying the manifests of PC) of the + // resources running on the cluster. The PCH has a Membership, is aware + // of the version the cluster should be running in, but has not + // confirmed for itself that the PC is running with that version. + // "DECOMMISSIONING" - The PC may have resources on the cluster, but + // the PCH wishes to remove the Membership. The Membership still exists. + // "CLUSTER_ERROR" - The PC is not operational, and the PCH is unable + // to act to make it operational. Entering a CLUSTER_ERROR state happens + // automatically when the PCH determines that a PC installed on the + // cluster is non-operative or that the cluster does not meet + // requirements set for the PCH to administer the cluster but has + // nevertheless been given an instruction to do so (such as 'install'). + // "HUB_ERROR" - In this state, the PC may still be operational, and + // only the PCH is unable to act. The hub should not issue instructions + // to change the PC state, or otherwise interfere with the on-cluster + // resources. Entering a HUB_ERROR state happens automatically when the + // PCH determines the hub is in an unhealthy state and it wishes to + // 'take hands off' to avoid corrupting the PC or other data. + // "SUSPENDED" - Policy Controller (PC) is installed but suspended. + // This means that the policies are not enforced, but violations are + // still recorded (through audit). + // "DETACHED" - PoCo Hub is not taking any action to reconcile cluster + // objects. Changes to those objects will not be overwritten by PoCo + // Hub. + State string `json:"state,omitempty"` + + // ForceSendFields is a list of field names (e.g. "Details") to + // unconditionally include in API requests. By default, fields with + // empty or default values are omitted from API requests. However, any + // non-pointer, non-interface field appearing in ForceSendFields will be + // sent to the server regardless of whether the field is empty or not. + // This may be used to include empty fields in Patch requests. + ForceSendFields []string `json:"-"` + + // NullFields is a list of field names (e.g. "Details") to include in + // API requests with the JSON null value. By default, fields with empty + // values are omitted from API requests. However, any field with an + // empty value appearing in NullFields will be sent to the server as + // null. It is an error if a field in this list has a non-empty value. + // This may be used to include null fields in Patch requests. + NullFields []string `json:"-"` +} + +func (s *PolicyControllerOnClusterState) MarshalJSON() ([]byte, error) { + type NoMethod PolicyControllerOnClusterState + raw := NoMethod(*s) + return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) +} + +// PolicyControllerPolicyContentSpec: PolicyContentSpec defines the +// user's desired content configuration on the cluster. +type PolicyControllerPolicyContentSpec struct { + // Bundles: map of bundle name to BundleInstallSpec. The bundle name + // maps to the `bundleName` key in the + // `policycontroller.gke.io/constraintData` annotation on a constraint. + Bundles map[string]PolicyControllerBundleInstallSpec `json:"bundles,omitempty"` + + // TemplateLibrary: Configures the installation of the Template Library. + TemplateLibrary *PolicyControllerTemplateLibraryConfig `json:"templateLibrary,omitempty"` + + // ForceSendFields is a list of field names (e.g. "Bundles") 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. "Bundles") 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 *PolicyControllerPolicyContentSpec) MarshalJSON() ([]byte, error) { + type NoMethod PolicyControllerPolicyContentSpec + raw := NoMethod(*s) + return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) +} + +// PolicyControllerPolicyContentState: The state of the policy +// controller policy content +type PolicyControllerPolicyContentState struct { + // BundleStates: The state of the any bundles included in the chosen + // version of the manifest + BundleStates map[string]PolicyControllerOnClusterState `json:"bundleStates,omitempty"` + + // ReferentialSyncConfigState: The state of the referential data sync + // configuration. This could represent the state of either the syncSet + // object(s) or the config object, depending on the version of PoCo + // configured by the user. + ReferentialSyncConfigState *PolicyControllerOnClusterState `json:"referentialSyncConfigState,omitempty"` + + // TemplateLibraryState: The state of the template library + TemplateLibraryState *PolicyControllerOnClusterState `json:"templateLibraryState,omitempty"` + + // ForceSendFields is a list of field names (e.g. "BundleStates") 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. "BundleStates") 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 *PolicyControllerPolicyContentState) MarshalJSON() ([]byte, error) { + type NoMethod PolicyControllerPolicyContentState + raw := NoMethod(*s) + return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) +} + +// PolicyControllerPolicyControllerDeploymentConfig: Deployment-specific +// configuration. +type PolicyControllerPolicyControllerDeploymentConfig struct { + // ContainerResources: Container resource requirements. + ContainerResources *PolicyControllerResourceRequirements `json:"containerResources,omitempty"` + + // PodAffinity: Pod affinity configuration. + // + // Possible values: + // "AFFINITY_UNSPECIFIED" - No affinity configuration has been + // specified. + // "NO_AFFINITY" - Affinity configurations will be removed from the + // deployment. + // "ANTI_AFFINITY" - Anti-affinity configuration will be applied to + // this deployment. Default for admissions deployment. + PodAffinity string `json:"podAffinity,omitempty"` + + // PodAntiAffinity: Pod anti-affinity enablement. + PodAntiAffinity bool `json:"podAntiAffinity,omitempty"` + + // PodTolerations: Pod tolerations of node taints. + PodTolerations []*PolicyControllerToleration `json:"podTolerations,omitempty"` + + // ReplicaCount: Pod replica count. + ReplicaCount int64 `json:"replicaCount,omitempty,string"` + + // ForceSendFields is a list of field names (e.g. "ContainerResources") + // 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. "ContainerResources") 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 *PolicyControllerPolicyControllerDeploymentConfig) MarshalJSON() ([]byte, error) { + type NoMethod PolicyControllerPolicyControllerDeploymentConfig + raw := NoMethod(*s) + return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) +} + +// PolicyControllerResourceList: ResourceList contains container +// resource requirements. +type PolicyControllerResourceList struct { + // Cpu: CPU requirement expressed in Kubernetes resource units. + Cpu string `json:"cpu,omitempty"` + + // Memory: Memory requirement expressed in Kubernetes resource units. + Memory string `json:"memory,omitempty"` + + // ForceSendFields is a list of field names (e.g. "Cpu") 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. "Cpu") 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 *PolicyControllerResourceList) MarshalJSON() ([]byte, error) { + type NoMethod PolicyControllerResourceList + raw := NoMethod(*s) + return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) +} + +// PolicyControllerResourceRequirements: ResourceRequirements describes +// the compute resource requirements. +type PolicyControllerResourceRequirements struct { + // Limits: Limits describes the maximum amount of compute resources + // allowed for use by the running container. + Limits *PolicyControllerResourceList `json:"limits,omitempty"` + + // Requests: Requests describes the amount of compute resources reserved + // for the container by the kube-scheduler. + Requests *PolicyControllerResourceList `json:"requests,omitempty"` + + // ForceSendFields is a list of field names (e.g. "Limits") 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. "Limits") 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 *PolicyControllerResourceRequirements) MarshalJSON() ([]byte, error) { + type NoMethod PolicyControllerResourceRequirements + raw := NoMethod(*s) + return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) +} + +// PolicyControllerTemplateLibraryConfig: The config specifying which +// default library templates to install. +type PolicyControllerTemplateLibraryConfig struct { + // Installation: Configures the manner in which the template library is + // installed on the cluster. + // + // Possible values: + // "INSTALLATION_UNSPECIFIED" - No installation strategy has been + // specified. + // "NOT_INSTALLED" - Do not install the template library. + // "ALL" - Install the entire template library. + Installation string `json:"installation,omitempty"` + + // ForceSendFields is a list of field names (e.g. "Installation") 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. "Installation") 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 *PolicyControllerTemplateLibraryConfig) MarshalJSON() ([]byte, error) { + type NoMethod PolicyControllerTemplateLibraryConfig + raw := NoMethod(*s) + return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) +} + +// PolicyControllerToleration: Toleration of a node taint. +type PolicyControllerToleration struct { + // Effect: Matches a taint effect. + Effect string `json:"effect,omitempty"` + + // Key: Matches a taint key (not necessarily unique). + Key string `json:"key,omitempty"` + + // Operator: Matches a taint operator. + Operator string `json:"operator,omitempty"` + + // Value: Matches a taint value. + Value string `json:"value,omitempty"` + + // ForceSendFields is a list of field names (e.g. "Effect") 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. "Effect") 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 *PolicyControllerToleration) MarshalJSON() ([]byte, error) { + type NoMethod PolicyControllerToleration + raw := NoMethod(*s) + return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) +} + // RBACRoleBinding: RBACRoleBinding represents a rbacrolebinding across // the Fleet type RBACRoleBinding struct { diff --git a/gkehub/v1alpha/gkehub-api.json b/gkehub/v1alpha/gkehub-api.json index 0ae9ce3c36b..3ced487c1de 100644 --- a/gkehub/v1alpha/gkehub-api.json +++ b/gkehub/v1alpha/gkehub-api.json @@ -2414,7 +2414,7 @@ } } }, - "revision": "20231006", + "revision": "20231013", "rootUrl": "https://gkehub.googleapis.com/", "schemas": { "AnthosObservabilityFeatureSpec": { @@ -2998,6 +2998,10 @@ "identityservice": { "$ref": "IdentityServiceMembershipSpec", "description": "Identity Service-specific spec." + }, + "policycontroller": { + "$ref": "PolicyControllerMembershipSpec", + "description": "Policy Controller spec." } }, "type": "object" diff --git a/gkehub/v1alpha/gkehub-gen.go b/gkehub/v1alpha/gkehub-gen.go index 6d25b292fd4..90a0c4a379e 100644 --- a/gkehub/v1alpha/gkehub-gen.go +++ b/gkehub/v1alpha/gkehub-gen.go @@ -1428,6 +1428,9 @@ type CommonFleetDefaultMemberConfigSpec struct { // Identityservice: Identity Service-specific spec. Identityservice *IdentityServiceMembershipSpec `json:"identityservice,omitempty"` + // Policycontroller: Policy Controller spec. + Policycontroller *PolicyControllerMembershipSpec `json:"policycontroller,omitempty"` + // ForceSendFields is a list of field names (e.g. "Configmanagement") to // unconditionally include in API requests. By default, fields with // empty or default values are omitted from API requests. However, any diff --git a/gkeonprem/v1/gkeonprem-api.json b/gkeonprem/v1/gkeonprem-api.json index e5a590b292b..e81cbf38cc1 100644 --- a/gkeonprem/v1/gkeonprem-api.json +++ b/gkeonprem/v1/gkeonprem-api.json @@ -2996,7 +2996,7 @@ } } }, - "revision": "20231004", + "revision": "20231011", "rootUrl": "https://gkeonprem.googleapis.com/", "schemas": { "Authorization": { @@ -5505,7 +5505,8 @@ }, "preparedSecrets": { "$ref": "VmwareAdminPreparedSecretsConfig", - "description": "The VMware admin cluster prepared secrets configuration." + "description": "Output only. The VMware admin cluster prepared secrets configuration. It should always be enabled by the Central API, instead of letting users set it.", + "readOnly": true }, "reconciling": { "description": "Output only. If set, there are currently changes in flight to the VMware admin cluster.", diff --git a/gkeonprem/v1/gkeonprem-gen.go b/gkeonprem/v1/gkeonprem-gen.go index 68791fde8f7..995308e8fe0 100644 --- a/gkeonprem/v1/gkeonprem-gen.go +++ b/gkeonprem/v1/gkeonprem-gen.go @@ -4835,8 +4835,9 @@ type VmwareAdminCluster struct { // PlatformConfig: The VMware platform configuration. PlatformConfig *VmwarePlatformConfig `json:"platformConfig,omitempty"` - // PreparedSecrets: The VMware admin cluster prepared secrets - // configuration. + // PreparedSecrets: Output only. The VMware admin cluster prepared + // secrets configuration. It should always be enabled by the Central + // API, instead of letting users set it. PreparedSecrets *VmwareAdminPreparedSecretsConfig `json:"preparedSecrets,omitempty"` // Reconciling: Output only. If set, there are currently changes in diff --git a/managedidentities/v1/managedidentities-api.json b/managedidentities/v1/managedidentities-api.json index 03c7b2ead4d..bdeaa293ccf 100644 --- a/managedidentities/v1/managedidentities-api.json +++ b/managedidentities/v1/managedidentities-api.json @@ -1515,7 +1515,7 @@ } } }, - "revision": "20230705", + "revision": "20231010", "rootUrl": "https://managedidentities.googleapis.com/", "schemas": { "AttachTrustRequest": { @@ -2704,7 +2704,7 @@ "description": "Properties of the object. Contains field @type with type URL.", "type": "any" }, - "description": "The normal response of the operation in case of success. If the original method returns no data on success, such as `Delete`, the response is `google.protobuf.Empty`. If the original method is standard `Get`/`Create`/`Update`, the response should be the resource. For other methods, the response should have the type `XxxResponse`, where `Xxx` is the original method name. For example, if the original method name is `TakeSnapshot()`, the inferred response type is `TakeSnapshotResponse`.", + "description": "The normal, successful response of the operation. If the original method returns no data on success, such as `Delete`, the response is `google.protobuf.Empty`. If the original method is standard `Get`/`Create`/`Update`, the response should be the resource. For other methods, the response should have the type `XxxResponse`, where `Xxx` is the original method name. For example, if the original method name is `TakeSnapshot()`, the inferred response type is `TakeSnapshotResponse`.", "type": "object" } }, @@ -2818,7 +2818,7 @@ "type": "object" }, "Policy": { - "description": "An Identity and Access Management (IAM) policy, which specifies access controls for Google Cloud resources. A `Policy` is a collection of `bindings`. A `binding` binds one or more `members`, or principals, to a single `role`. Principals can be user accounts, service accounts, Google groups, and domains (such as G Suite). A `role` is a named list of permissions; each `role` can be an IAM predefined role or a user-created custom role. For some types of Google Cloud resources, a `binding` can also specify a `condition`, which is a logical expression that allows access to a resource only if the expression evaluates to `true`. A condition can add constraints based on attributes of the request, the resource, or both. To learn which resources support conditions in their IAM policies, see the [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-policies). **JSON example:** { \"bindings\": [ { \"role\": \"roles/resourcemanager.organizationAdmin\", \"members\": [ \"user:mike@example.com\", \"group:admins@example.com\", \"domain:google.com\", \"serviceAccount:my-project-id@appspot.gserviceaccount.com\" ] }, { \"role\": \"roles/resourcemanager.organizationViewer\", \"members\": [ \"user:eve@example.com\" ], \"condition\": { \"title\": \"expirable access\", \"description\": \"Does not grant access after Sep 2020\", \"expression\": \"request.time \u003c timestamp('2020-10-01T00:00:00.000Z')\", } } ], \"etag\": \"BwWWja0YfJA=\", \"version\": 3 } **YAML example:** bindings: - members: - user:mike@example.com - group:admins@example.com - domain:google.com - serviceAccount:my-project-id@appspot.gserviceaccount.com role: roles/resourcemanager.organizationAdmin - members: - user:eve@example.com role: roles/resourcemanager.organizationViewer condition: title: expirable access description: Does not grant access after Sep 2020 expression: request.time \u003c timestamp('2020-10-01T00:00:00.000Z') etag: BwWWja0YfJA= version: 3 For a description of IAM and its features, see the [IAM documentation](https://cloud.google.com/iam/docs/).", + "description": "An Identity and Access Management (IAM) policy, which specifies access controls for Google Cloud resources. A `Policy` is a collection of `bindings`. A `binding` binds one or more `members`, or principals, to a single `role`. Principals can be user accounts, service accounts, Google groups, and domains (such as G Suite). A `role` is a named list of permissions; each `role` can be an IAM predefined role or a user-created custom role. For some types of Google Cloud resources, a `binding` can also specify a `condition`, which is a logical expression that allows access to a resource only if the expression evaluates to `true`. A condition can add constraints based on attributes of the request, the resource, or both. To learn which resources support conditions in their IAM policies, see the [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-policies). **JSON example:** ``` { \"bindings\": [ { \"role\": \"roles/resourcemanager.organizationAdmin\", \"members\": [ \"user:mike@example.com\", \"group:admins@example.com\", \"domain:google.com\", \"serviceAccount:my-project-id@appspot.gserviceaccount.com\" ] }, { \"role\": \"roles/resourcemanager.organizationViewer\", \"members\": [ \"user:eve@example.com\" ], \"condition\": { \"title\": \"expirable access\", \"description\": \"Does not grant access after Sep 2020\", \"expression\": \"request.time \u003c timestamp('2020-10-01T00:00:00.000Z')\", } } ], \"etag\": \"BwWWja0YfJA=\", \"version\": 3 } ``` **YAML example:** ``` bindings: - members: - user:mike@example.com - group:admins@example.com - domain:google.com - serviceAccount:my-project-id@appspot.gserviceaccount.com role: roles/resourcemanager.organizationAdmin - members: - user:eve@example.com role: roles/resourcemanager.organizationViewer condition: title: expirable access description: Does not grant access after Sep 2020 expression: request.time \u003c timestamp('2020-10-01T00:00:00.000Z') etag: BwWWja0YfJA= version: 3 ``` For a description of IAM and its features, see the [IAM documentation](https://cloud.google.com/iam/docs/).", "id": "Policy", "properties": { "bindings": { @@ -3189,7 +3189,7 @@ "type": "string" }, "denyMaintenancePeriods": { - "description": "Deny Maintenance Period that is applied to resource to indicate when maintenance is forbidden. User can specify zero or more non-overlapping deny periods. Maximum number of deny_maintenance_periods expected is one.", + "description": "Deny Maintenance Period that is applied to resource to indicate when maintenance is forbidden. The protocol supports zero-to-many such periods, but the current SLM Rollout implementation only supports zero-to-one.", "items": { "$ref": "DenyMaintenancePeriod" }, diff --git a/managedidentities/v1/managedidentities-gen.go b/managedidentities/v1/managedidentities-gen.go index ede413e085b..94c6f66a577 100644 --- a/managedidentities/v1/managedidentities-gen.go +++ b/managedidentities/v1/managedidentities-gen.go @@ -2159,8 +2159,8 @@ type Operation struct { // `operations/{unique_id}`. Name string `json:"name,omitempty"` - // Response: The normal response of the operation in case of success. If - // the original method returns no data on success, such as `Delete`, the + // Response: The normal, successful response of the operation. If the + // original method returns no data on success, such as `Delete`, the // response is `google.protobuf.Empty`. If the original method is // standard `Get`/`Create`/`Update`, the response should be the // resource. For other methods, the response should have the type @@ -2334,7 +2334,7 @@ func (s *Peering) MarshalJSON() ([]byte, error) { // both. To learn which resources support conditions in their IAM // policies, see the IAM documentation // (https://cloud.google.com/iam/help/conditions/resource-policies). -// **JSON example:** { "bindings": [ { "role": +// **JSON example:** ``` { "bindings": [ { "role": // "roles/resourcemanager.organizationAdmin", "members": [ // "user:mike@example.com", "group:admins@example.com", // "domain:google.com", @@ -2343,17 +2343,17 @@ func (s *Peering) MarshalJSON() ([]byte, error) { // "user:eve@example.com" ], "condition": { "title": "expirable access", // "description": "Does not grant access after Sep 2020", "expression": // "request.time < timestamp('2020-10-01T00:00:00.000Z')", } } ], -// "etag": "BwWWja0YfJA=", "version": 3 } **YAML example:** bindings: - -// members: - user:mike@example.com - group:admins@example.com - -// domain:google.com - +// "etag": "BwWWja0YfJA=", "version": 3 } ``` **YAML example:** ``` +// bindings: - members: - user:mike@example.com - +// group:admins@example.com - domain:google.com - // serviceAccount:my-project-id@appspot.gserviceaccount.com role: // roles/resourcemanager.organizationAdmin - members: - // user:eve@example.com role: roles/resourcemanager.organizationViewer // condition: title: expirable access description: Does not grant access // after Sep 2020 expression: request.time < // timestamp('2020-10-01T00:00:00.000Z') etag: BwWWja0YfJA= version: 3 -// For a description of IAM and its features, see the IAM documentation -// (https://cloud.google.com/iam/docs/). +// ``` For a description of IAM and its features, see the IAM +// documentation (https://cloud.google.com/iam/docs/). type Policy struct { // Bindings: Associates a list of `members`, or principals, with a // `role`. Optionally, may specify a `condition` that determines how and @@ -2925,9 +2925,9 @@ type UpdatePolicy struct { Channel string `json:"channel,omitempty"` // DenyMaintenancePeriods: Deny Maintenance Period that is applied to - // resource to indicate when maintenance is forbidden. User can specify - // zero or more non-overlapping deny periods. Maximum number of - // deny_maintenance_periods expected is one. + // resource to indicate when maintenance is forbidden. The protocol + // supports zero-to-many such periods, but the current SLM Rollout + // implementation only supports zero-to-one. DenyMaintenancePeriods []*DenyMaintenancePeriod `json:"denyMaintenancePeriods,omitempty"` // Window: Optional. Maintenance window that is applied to resources diff --git a/managedidentities/v1beta1/managedidentities-api.json b/managedidentities/v1beta1/managedidentities-api.json index c0d1a60bef3..255372a94e1 100644 --- a/managedidentities/v1beta1/managedidentities-api.json +++ b/managedidentities/v1beta1/managedidentities-api.json @@ -1515,7 +1515,7 @@ } } }, - "revision": "20230705", + "revision": "20231010", "rootUrl": "https://managedidentities.googleapis.com/", "schemas": { "AttachTrustRequest": { @@ -2716,7 +2716,7 @@ "description": "Properties of the object. Contains field @type with type URL.", "type": "any" }, - "description": "The normal response of the operation in case of success. If the original method returns no data on success, such as `Delete`, the response is `google.protobuf.Empty`. If the original method is standard `Get`/`Create`/`Update`, the response should be the resource. For other methods, the response should have the type `XxxResponse`, where `Xxx` is the original method name. For example, if the original method name is `TakeSnapshot()`, the inferred response type is `TakeSnapshotResponse`.", + "description": "The normal, successful response of the operation. If the original method returns no data on success, such as `Delete`, the response is `google.protobuf.Empty`. If the original method is standard `Get`/`Create`/`Update`, the response should be the resource. For other methods, the response should have the type `XxxResponse`, where `Xxx` is the original method name. For example, if the original method name is `TakeSnapshot()`, the inferred response type is `TakeSnapshotResponse`.", "type": "object" } }, @@ -2830,7 +2830,7 @@ "type": "object" }, "Policy": { - "description": "An Identity and Access Management (IAM) policy, which specifies access controls for Google Cloud resources. A `Policy` is a collection of `bindings`. A `binding` binds one or more `members`, or principals, to a single `role`. Principals can be user accounts, service accounts, Google groups, and domains (such as G Suite). A `role` is a named list of permissions; each `role` can be an IAM predefined role or a user-created custom role. For some types of Google Cloud resources, a `binding` can also specify a `condition`, which is a logical expression that allows access to a resource only if the expression evaluates to `true`. A condition can add constraints based on attributes of the request, the resource, or both. To learn which resources support conditions in their IAM policies, see the [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-policies). **JSON example:** { \"bindings\": [ { \"role\": \"roles/resourcemanager.organizationAdmin\", \"members\": [ \"user:mike@example.com\", \"group:admins@example.com\", \"domain:google.com\", \"serviceAccount:my-project-id@appspot.gserviceaccount.com\" ] }, { \"role\": \"roles/resourcemanager.organizationViewer\", \"members\": [ \"user:eve@example.com\" ], \"condition\": { \"title\": \"expirable access\", \"description\": \"Does not grant access after Sep 2020\", \"expression\": \"request.time \u003c timestamp('2020-10-01T00:00:00.000Z')\", } } ], \"etag\": \"BwWWja0YfJA=\", \"version\": 3 } **YAML example:** bindings: - members: - user:mike@example.com - group:admins@example.com - domain:google.com - serviceAccount:my-project-id@appspot.gserviceaccount.com role: roles/resourcemanager.organizationAdmin - members: - user:eve@example.com role: roles/resourcemanager.organizationViewer condition: title: expirable access description: Does not grant access after Sep 2020 expression: request.time \u003c timestamp('2020-10-01T00:00:00.000Z') etag: BwWWja0YfJA= version: 3 For a description of IAM and its features, see the [IAM documentation](https://cloud.google.com/iam/docs/).", + "description": "An Identity and Access Management (IAM) policy, which specifies access controls for Google Cloud resources. A `Policy` is a collection of `bindings`. A `binding` binds one or more `members`, or principals, to a single `role`. Principals can be user accounts, service accounts, Google groups, and domains (such as G Suite). A `role` is a named list of permissions; each `role` can be an IAM predefined role or a user-created custom role. For some types of Google Cloud resources, a `binding` can also specify a `condition`, which is a logical expression that allows access to a resource only if the expression evaluates to `true`. A condition can add constraints based on attributes of the request, the resource, or both. To learn which resources support conditions in their IAM policies, see the [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-policies). **JSON example:** ``` { \"bindings\": [ { \"role\": \"roles/resourcemanager.organizationAdmin\", \"members\": [ \"user:mike@example.com\", \"group:admins@example.com\", \"domain:google.com\", \"serviceAccount:my-project-id@appspot.gserviceaccount.com\" ] }, { \"role\": \"roles/resourcemanager.organizationViewer\", \"members\": [ \"user:eve@example.com\" ], \"condition\": { \"title\": \"expirable access\", \"description\": \"Does not grant access after Sep 2020\", \"expression\": \"request.time \u003c timestamp('2020-10-01T00:00:00.000Z')\", } } ], \"etag\": \"BwWWja0YfJA=\", \"version\": 3 } ``` **YAML example:** ``` bindings: - members: - user:mike@example.com - group:admins@example.com - domain:google.com - serviceAccount:my-project-id@appspot.gserviceaccount.com role: roles/resourcemanager.organizationAdmin - members: - user:eve@example.com role: roles/resourcemanager.organizationViewer condition: title: expirable access description: Does not grant access after Sep 2020 expression: request.time \u003c timestamp('2020-10-01T00:00:00.000Z') etag: BwWWja0YfJA= version: 3 ``` For a description of IAM and its features, see the [IAM documentation](https://cloud.google.com/iam/docs/).", "id": "Policy", "properties": { "bindings": { @@ -3201,7 +3201,7 @@ "type": "string" }, "denyMaintenancePeriods": { - "description": "Deny Maintenance Period that is applied to resource to indicate when maintenance is forbidden. User can specify zero or more non-overlapping deny periods. Maximum number of deny_maintenance_periods expected is one.", + "description": "Deny Maintenance Period that is applied to resource to indicate when maintenance is forbidden. The protocol supports zero-to-many such periods, but the current SLM Rollout implementation only supports zero-to-one.", "items": { "$ref": "DenyMaintenancePeriod" }, diff --git a/managedidentities/v1beta1/managedidentities-gen.go b/managedidentities/v1beta1/managedidentities-gen.go index 2030cb4fa84..fc697313626 100644 --- a/managedidentities/v1beta1/managedidentities-gen.go +++ b/managedidentities/v1beta1/managedidentities-gen.go @@ -2178,8 +2178,8 @@ type Operation struct { // `operations/{unique_id}`. Name string `json:"name,omitempty"` - // Response: The normal response of the operation in case of success. If - // the original method returns no data on success, such as `Delete`, the + // Response: The normal, successful response of the operation. If the + // original method returns no data on success, such as `Delete`, the // response is `google.protobuf.Empty`. If the original method is // standard `Get`/`Create`/`Update`, the response should be the // resource. For other methods, the response should have the type @@ -2352,7 +2352,7 @@ func (s *Peering) MarshalJSON() ([]byte, error) { // both. To learn which resources support conditions in their IAM // policies, see the IAM documentation // (https://cloud.google.com/iam/help/conditions/resource-policies). -// **JSON example:** { "bindings": [ { "role": +// **JSON example:** ``` { "bindings": [ { "role": // "roles/resourcemanager.organizationAdmin", "members": [ // "user:mike@example.com", "group:admins@example.com", // "domain:google.com", @@ -2361,17 +2361,17 @@ func (s *Peering) MarshalJSON() ([]byte, error) { // "user:eve@example.com" ], "condition": { "title": "expirable access", // "description": "Does not grant access after Sep 2020", "expression": // "request.time < timestamp('2020-10-01T00:00:00.000Z')", } } ], -// "etag": "BwWWja0YfJA=", "version": 3 } **YAML example:** bindings: - -// members: - user:mike@example.com - group:admins@example.com - -// domain:google.com - +// "etag": "BwWWja0YfJA=", "version": 3 } ``` **YAML example:** ``` +// bindings: - members: - user:mike@example.com - +// group:admins@example.com - domain:google.com - // serviceAccount:my-project-id@appspot.gserviceaccount.com role: // roles/resourcemanager.organizationAdmin - members: - // user:eve@example.com role: roles/resourcemanager.organizationViewer // condition: title: expirable access description: Does not grant access // after Sep 2020 expression: request.time < // timestamp('2020-10-01T00:00:00.000Z') etag: BwWWja0YfJA= version: 3 -// For a description of IAM and its features, see the IAM documentation -// (https://cloud.google.com/iam/docs/). +// ``` For a description of IAM and its features, see the IAM +// documentation (https://cloud.google.com/iam/docs/). type Policy struct { // Bindings: Associates a list of `members`, or principals, with a // `role`. Optionally, may specify a `condition` that determines how and @@ -2938,9 +2938,9 @@ type UpdatePolicy struct { Channel string `json:"channel,omitempty"` // DenyMaintenancePeriods: Deny Maintenance Period that is applied to - // resource to indicate when maintenance is forbidden. User can specify - // zero or more non-overlapping deny periods. Maximum number of - // deny_maintenance_periods expected is one. + // resource to indicate when maintenance is forbidden. The protocol + // supports zero-to-many such periods, but the current SLM Rollout + // implementation only supports zero-to-one. DenyMaintenancePeriods []*DenyMaintenancePeriod `json:"denyMaintenancePeriods,omitempty"` // Window: Optional. Maintenance window that is applied to resources diff --git a/migrationcenter/v1alpha1/migrationcenter-api.json b/migrationcenter/v1alpha1/migrationcenter-api.json index fcb1c8fdc2e..508533558a7 100644 --- a/migrationcenter/v1alpha1/migrationcenter-api.json +++ b/migrationcenter/v1alpha1/migrationcenter-api.json @@ -2102,7 +2102,7 @@ } } }, - "revision": "20230928", + "revision": "20231013", "rootUrl": "https://migrationcenter.googleapis.com/", "schemas": { "AddAssetsToGroupRequest": { @@ -2865,6 +2865,23 @@ }, "type": "object" }, + "DetectedSoftware": { + "description": "Information about software detected on an asset.", + "id": "DetectedSoftware", + "properties": { + "softwareFamily": { + "description": "Output only. Software family of the detected software, e.g. Database, SAP family.", + "readOnly": true, + "type": "string" + }, + "softwareName": { + "description": "Output only. Software's name.", + "readOnly": true, + "type": "string" + } + }, + "type": "object" + }, "DiskEntry": { "description": "Single disk entry.", "id": "DiskEntry", @@ -3277,11 +3294,11 @@ "type": "string" }, "description": { - "description": "The description of the resource.", + "description": "Optional. The description of the group.", "type": "string" }, "displayName": { - "description": "User-friendly display name.", + "description": "Optional. User-friendly display name.", "type": "string" }, "labels": { @@ -3733,6 +3750,11 @@ "$ref": "MigrationInsight", "description": "Output only. An insight about potential migrations for an asset.", "readOnly": true + }, + "softwareInsight": { + "$ref": "SoftwareInsight", + "description": "Output only. An insight regarding software detected on an asset.", + "readOnly": true } }, "type": "object" @@ -5313,6 +5335,18 @@ }, "type": "object" }, + "SoftwareInsight": { + "description": "An insight regarding software detected on an asset.", + "id": "SoftwareInsight", + "properties": { + "detectedSoftware": { + "$ref": "DetectedSoftware", + "description": "Output only. Information about the detected software.", + "readOnly": true + } + }, + "type": "object" + }, "SoleTenancyPreferences": { "description": "Preferences concerning Sole Tenancy nodes and VMs.", "id": "SoleTenancyPreferences", diff --git a/migrationcenter/v1alpha1/migrationcenter-gen.go b/migrationcenter/v1alpha1/migrationcenter-gen.go index d1f03ab1758..07af79cc3b0 100644 --- a/migrationcenter/v1alpha1/migrationcenter-gen.go +++ b/migrationcenter/v1alpha1/migrationcenter-gen.go @@ -1671,6 +1671,39 @@ func (s *DateTime) MarshalJSON() ([]byte, error) { return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) } +// DetectedSoftware: Information about software detected on an asset. +type DetectedSoftware struct { + // SoftwareFamily: Output only. Software family of the detected + // software, e.g. Database, SAP family. + SoftwareFamily string `json:"softwareFamily,omitempty"` + + // SoftwareName: Output only. Software's name. + SoftwareName string `json:"softwareName,omitempty"` + + // ForceSendFields is a list of field names (e.g. "SoftwareFamily") 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. "SoftwareFamily") 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 *DetectedSoftware) MarshalJSON() ([]byte, error) { + type NoMethod DetectedSoftware + raw := NoMethod(*s) + return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) +} + // DiskEntry: Single disk entry. type DiskEntry struct { // DiskLabel: Disk label. @@ -2301,10 +2334,10 @@ type Group struct { // CreateTime: Output only. The timestamp when the group was created. CreateTime string `json:"createTime,omitempty"` - // Description: The description of the resource. + // Description: Optional. The description of the group. Description string `json:"description,omitempty"` - // DisplayName: User-friendly display name. + // DisplayName: Optional. User-friendly display name. DisplayName string `json:"displayName,omitempty"` // Labels: Labels as key value pairs. @@ -2874,6 +2907,10 @@ type Insight struct { // for an asset. MigrationInsight *MigrationInsight `json:"migrationInsight,omitempty"` + // SoftwareInsight: Output only. An insight regarding software detected + // on an asset. + SoftwareInsight *SoftwareInsight `json:"softwareInsight,omitempty"` + // ForceSendFields is a list of field names (e.g. "GenericInsight") to // unconditionally include in API requests. By default, fields with // empty or default values are omitted from API requests. However, any @@ -5488,6 +5525,36 @@ func (s *Settings) MarshalJSON() ([]byte, error) { return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) } +// SoftwareInsight: An insight regarding software detected on an asset. +type SoftwareInsight struct { + // DetectedSoftware: Output only. Information about the detected + // software. + DetectedSoftware *DetectedSoftware `json:"detectedSoftware,omitempty"` + + // ForceSendFields is a list of field names (e.g. "DetectedSoftware") 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. "DetectedSoftware") 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 *SoftwareInsight) MarshalJSON() ([]byte, error) { + type NoMethod SoftwareInsight + raw := NoMethod(*s) + return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) +} + // SoleTenancyPreferences: Preferences concerning Sole Tenancy nodes and // VMs. type SoleTenancyPreferences struct { diff --git a/spanner/v1/spanner-api.json b/spanner/v1/spanner-api.json index 50f219a82cb..9465accbae8 100644 --- a/spanner/v1/spanner-api.json +++ b/spanner/v1/spanner-api.json @@ -21,6 +21,13 @@ "description": "Cloud Spanner is a managed, mission-critical, globally consistent and scalable relational database service.", "discoveryVersion": "v1", "documentationLink": "https://cloud.google.com/spanner/", + "endpoints": [ + { + "description": "Regional Endpoint", + "endpointUrl": "https://spanner.me-central2.rep.googleapis.com/", + "location": "me-central2" + } + ], "fullyEncodeReservedExpansion": true, "icons": { "x16": "http://www.google.com/images/icons/product/search-16.gif", @@ -2594,7 +2601,7 @@ } } }, - "revision": "20230928", + "revision": "20231017", "rootUrl": "https://spanner.googleapis.com/", "schemas": { "Backup": { @@ -3658,6 +3665,25 @@ }, "type": "object" }, + "IndexAdvice": { + "description": "Recommendation to add new indexes to run queries more efficiently.", + "id": "IndexAdvice", + "properties": { + "ddl": { + "description": "Optional. DDL statements to add new indexes that will improve the query.", + "items": { + "type": "string" + }, + "type": "array" + }, + "improvementFactor": { + "description": "Optional. Estimated latency improvement factor. For example if the query currently takes 500 ms to run and the estimated latency with new indexes is 100 ms this field will be 5.", + "format": "double", + "type": "number" + } + }, + "type": "object" + }, "IndexedHotKey": { "description": "A message representing a (sparse) collection of hot keys for specific key buckets.", "id": "IndexedHotKey", @@ -4740,6 +4766,20 @@ }, "type": "object" }, + "QueryAdvisorResult": { + "description": "Output of query advisor analysis.", + "id": "QueryAdvisorResult", + "properties": { + "indexAdvice": { + "description": "Optional. Index Recommendation for a query. This is an optional field and the recommendation will only be available when the recommendation guarantees significant improvement in query performance.", + "items": { + "$ref": "IndexAdvice" + }, + "type": "array" + } + }, + "type": "object" + }, "QueryOptions": { "description": "Query optimizer configuration.", "id": "QueryOptions", @@ -4765,6 +4805,10 @@ "$ref": "PlanNode" }, "type": "array" + }, + "queryAdvice": { + "$ref": "QueryAdvisorResult", + "description": "Optional. The advices/recommendations for a query. Currently this field will be serving index recommendations for a query." } }, "type": "object" diff --git a/spanner/v1/spanner-gen.go b/spanner/v1/spanner-gen.go index cc4faa99e26..3df4dc36ed4 100644 --- a/spanner/v1/spanner-gen.go +++ b/spanner/v1/spanner-gen.go @@ -2356,6 +2356,55 @@ func (s *GetPolicyOptions) MarshalJSON() ([]byte, error) { return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) } +// IndexAdvice: Recommendation to add new indexes to run queries more +// efficiently. +type IndexAdvice struct { + // Ddl: Optional. DDL statements to add new indexes that will improve + // the query. + Ddl []string `json:"ddl,omitempty"` + + // ImprovementFactor: Optional. Estimated latency improvement factor. + // For example if the query currently takes 500 ms to run and the + // estimated latency with new indexes is 100 ms this field will be 5. + ImprovementFactor float64 `json:"improvementFactor,omitempty"` + + // ForceSendFields is a list of field names (e.g. "Ddl") 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. "Ddl") 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 *IndexAdvice) MarshalJSON() ([]byte, error) { + type NoMethod IndexAdvice + raw := NoMethod(*s) + return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) +} + +func (s *IndexAdvice) UnmarshalJSON(data []byte) error { + type NoMethod IndexAdvice + var s1 struct { + ImprovementFactor gensupport.JSONFloat64 `json:"improvementFactor"` + *NoMethod + } + s1.NoMethod = (*NoMethod)(s) + if err := json.Unmarshal(data, &s1); err != nil { + return err + } + s.ImprovementFactor = float64(s1.ImprovementFactor) + return nil +} + // IndexedHotKey: A message representing a (sparse) collection of hot // keys for specific key buckets. type IndexedHotKey struct { @@ -4337,6 +4386,37 @@ func (s *PrefixNode) MarshalJSON() ([]byte, error) { return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) } +// QueryAdvisorResult: Output of query advisor analysis. +type QueryAdvisorResult struct { + // IndexAdvice: Optional. Index Recommendation for a query. This is an + // optional field and the recommendation will only be available when the + // recommendation guarantees significant improvement in query + // performance. + IndexAdvice []*IndexAdvice `json:"indexAdvice,omitempty"` + + // ForceSendFields is a list of field names (e.g. "IndexAdvice") 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. "IndexAdvice") 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 *QueryAdvisorResult) MarshalJSON() ([]byte, error) { + type NoMethod QueryAdvisorResult + raw := NoMethod(*s) + return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) +} + // QueryOptions: Query optimizer configuration. type QueryOptions struct { // OptimizerStatisticsPackage: An option to control the selection of @@ -4405,6 +4485,11 @@ type QueryPlan struct { // corresponds to its index in `plan_nodes`. PlanNodes []*PlanNode `json:"planNodes,omitempty"` + // QueryAdvice: Optional. The advices/recommendations for a query. + // Currently this field will be serving index recommendations for a + // query. + QueryAdvice *QueryAdvisorResult `json:"queryAdvice,omitempty"` + // ForceSendFields is a list of field names (e.g. "PlanNodes") to // unconditionally include in API requests. By default, fields with // empty or default values are omitted from API requests. However, any diff --git a/workstations/v1beta/workstations-api.json b/workstations/v1beta/workstations-api.json index b46518abf19..d9a83e2818e 100644 --- a/workstations/v1beta/workstations-api.json +++ b/workstations/v1beta/workstations-api.json @@ -1127,7 +1127,7 @@ } } }, - "revision": "20231001", + "revision": "20231011", "rootUrl": "https://workstations.googleapis.com/", "schemas": { "Accelerator": { @@ -1278,6 +1278,17 @@ }, "type": "object" }, + "DomainConfig": { + "description": "Configuration options for a custom domain.", + "id": "DomainConfig", + "properties": { + "domain": { + "description": "Immutable. Domain used by Workstations for HTTP ingress.", + "type": "string" + } + }, + "type": "object" + }, "EphemeralDirectory": { "description": "An ephemeral directory which won't persist across workstation sessions. It is freshly created on every workstation start operation.", "id": "EphemeralDirectory", @@ -2081,6 +2092,10 @@ "description": "Optional. Human-readable name for this workstation cluster.", "type": "string" }, + "domainConfig": { + "$ref": "DomainConfig", + "description": "Optional. Configuration options for a custom domain." + }, "etag": { "description": "Optional. Checksum computed by the server. May be sent on update and delete requests to make sure that the client has an up-to-date value before proceeding.", "type": "string" diff --git a/workstations/v1beta/workstations-gen.go b/workstations/v1beta/workstations-gen.go index c4e09a5211f..c8bc8ff424d 100644 --- a/workstations/v1beta/workstations-gen.go +++ b/workstations/v1beta/workstations-gen.go @@ -534,6 +534,34 @@ func (s *CustomerEncryptionKey) MarshalJSON() ([]byte, error) { return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) } +// DomainConfig: Configuration options for a custom domain. +type DomainConfig struct { + // Domain: Immutable. Domain used by Workstations for HTTP ingress. + Domain string `json:"domain,omitempty"` + + // ForceSendFields is a list of field names (e.g. "Domain") to + // unconditionally include in API requests. By default, fields with + // empty or default values are omitted from API requests. However, any + // non-pointer, non-interface field appearing in ForceSendFields will be + // sent to the server regardless of whether the field is empty or not. + // This may be used to include empty fields in Patch requests. + ForceSendFields []string `json:"-"` + + // NullFields is a list of field names (e.g. "Domain") to include in API + // requests with the JSON null value. By default, fields with empty + // values are omitted from API requests. However, any field with an + // empty value appearing in NullFields will be sent to the server as + // null. It is an error if a field in this list has a non-empty value. + // This may be used to include null fields in Patch requests. + NullFields []string `json:"-"` +} + +func (s *DomainConfig) MarshalJSON() ([]byte, error) { + type NoMethod DomainConfig + raw := NoMethod(*s) + return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) +} + // EphemeralDirectory: An ephemeral directory which won't persist across // workstation sessions. It is freshly created on every workstation // start operation. @@ -1971,6 +1999,9 @@ type WorkstationCluster struct { // cluster. DisplayName string `json:"displayName,omitempty"` + // DomainConfig: Optional. Configuration options for a custom domain. + DomainConfig *DomainConfig `json:"domainConfig,omitempty"` + // Etag: Optional. Checksum computed by the server. May be sent on // update and delete requests to make sure that the client has an // up-to-date value before proceeding.