diff --git a/api-list.json b/api-list.json index eca48c62249..0c01d3f443d 100644 --- a/api-list.json +++ b/api-list.json @@ -5578,13 +5578,13 @@ "name": "vmmigration", "version": "v1alpha1", "title": "VM Migration API", - "description": "Use the Migrate for Compute Engine API to programmatically migrate workloads.", + "description": "Use the Migrate to Virtual Machines API to programmatically migrate workloads.", "discoveryRestUrl": "https://vmmigration.googleapis.com/$discovery/rest?version=v1alpha1", "icons": { "x16": "https://www.gstatic.com/images/branding/product/1x/googleg_16dp.png", "x32": "https://www.gstatic.com/images/branding/product/1x/googleg_32dp.png" }, - "documentationLink": "https://cloud.google.com/migrate/compute-engine", + "documentationLink": "https://cloud.google.com/migrate/virtual-machines", "preferred": false }, { @@ -5593,13 +5593,13 @@ "name": "vmmigration", "version": "v1", "title": "VM Migration API", - "description": "Use the Migrate for Compute Engine API to programmatically migrate workloads.", + "description": "Use the Migrate to Virtual Machines API to programmatically migrate workloads.", "discoveryRestUrl": "https://vmmigration.googleapis.com/$discovery/rest?version=v1", "icons": { "x16": "https://www.gstatic.com/images/branding/product/1x/googleg_16dp.png", "x32": "https://www.gstatic.com/images/branding/product/1x/googleg_32dp.png" }, - "documentationLink": "https://cloud.google.com/migrate/compute-engine", + "documentationLink": "https://cloud.google.com/migrate/virtual-machines", "preferred": true }, { diff --git a/bigquerydatatransfer/v1/bigquerydatatransfer-api.json b/bigquerydatatransfer/v1/bigquerydatatransfer-api.json index d6989b8b523..b9f26aab8ef 100644 --- a/bigquerydatatransfer/v1/bigquerydatatransfer-api.json +++ b/bigquerydatatransfer/v1/bigquerydatatransfer-api.json @@ -1340,7 +1340,7 @@ } } }, - "revision": "20220409", + "revision": "20220709", "rootUrl": "https://bigquerydatatransfer.googleapis.com/", "schemas": { "CheckValidCredsRequest": { @@ -1876,7 +1876,7 @@ "type": "integer" }, "dataSourceId": { - "description": "Data source id. Cannot be changed once data transfer is created.", + "description": "Data source id. Cannot be changed once data transfer is created. The full list of available data source ids can be returned through API call: https://cloud.google.com/bigquery-transfer/docs/reference/datatransfer/rest/v1/projects.locations.dataSources/list The individual data source id can also be found in the bq tab in the 'Setting up a data transfer' section for each data source. For example, the data source id for Cloud Storage transfers is listed here: https://cloud.google.com/bigquery-transfer/docs/cloud-storage-transfer#bq", "type": "string" }, "datasetRegion": { diff --git a/bigquerydatatransfer/v1/bigquerydatatransfer-gen.go b/bigquerydatatransfer/v1/bigquerydatatransfer-gen.go index dbb9e68a1da..e4759f25e4b 100644 --- a/bigquerydatatransfer/v1/bigquerydatatransfer-gen.go +++ b/bigquerydatatransfer/v1/bigquerydatatransfer-gen.go @@ -1140,7 +1140,14 @@ type TransferConfig struct { DataRefreshWindowDays int64 `json:"dataRefreshWindowDays,omitempty"` // DataSourceId: Data source id. Cannot be changed once data transfer is - // created. + // created. The full list of available data source ids can be returned + // through API call: + // https://cloud.google.com/bigquery-transfer/docs/reference/datatransfer/rest/v1/projects.locations.dataSources/list + // The individual data source id can also be found in the bq tab in the + // 'Setting up a data transfer' section for each data source. For + // example, the data source id for Cloud Storage transfers is listed + // here: + // https://cloud.google.com/bigquery-transfer/docs/cloud-storage-transfer#bq DataSourceId string `json:"dataSourceId,omitempty"` // DatasetRegion: Output only. Region in which BigQuery dataset is diff --git a/certificatemanager/v1/certificatemanager-api.json b/certificatemanager/v1/certificatemanager-api.json index 6f064ea2206..234c4087bba 100644 --- a/certificatemanager/v1/certificatemanager-api.json +++ b/certificatemanager/v1/certificatemanager-api.json @@ -975,7 +975,7 @@ } } }, - "revision": "20220602", + "revision": "20220707", "rootUrl": "https://certificatemanager.googleapis.com/", "schemas": { "AuthorizationAttemptInfo": { @@ -1648,27 +1648,6 @@ }, "type": "object" }, - "ResourcesCount": { - "description": "ResourcesCount represents the resource that stores aggregated project's info in the given location, e.g.: total number of certificates assigned to the project.", - "id": "ResourcesCount", - "properties": { - "certificates": { - "description": "The count of certificates.", - "format": "uint64", - "type": "string" - }, - "computeTime": { - "description": "Required. Input only. The time of the computation. The field is input only, used in Create and Update calls. For Update call, new values of selected resources are set if their compute_time is younger than the persisted ones, e.g.: If you support 3 types of resources: A, B and C, and you have: 'A' resource count computed at timestamp = 3 'B' resource count computed at timestamp = 10 'C' resource count computed at timestamp = 5 And you're going to update all of them with compute_time = 8, only 'A' and 'C' will be updated, as 'B' already has fresher data. For Get call a ResourcesCount instance contains the freshest values for every type.", - "format": "google-datetime", - "type": "string" - }, - "name": { - "description": "The singleton resource of the resources count. Must be in the format `projects/*/locations/*/resourcesCounts/single`.", - "type": "string" - } - }, - "type": "object" - }, "SelfManagedCertificate": { "description": "Certificate data for a SelfManaged Certificate. SelfManaged Certificates are uploaded by the user. Updating such certificates before they expire remains the user's responsibility.", "id": "SelfManagedCertificate", diff --git a/certificatemanager/v1/certificatemanager-gen.go b/certificatemanager/v1/certificatemanager-gen.go index 5c783c9e327..f931ec48bcc 100644 --- a/certificatemanager/v1/certificatemanager-gen.go +++ b/certificatemanager/v1/certificatemanager-gen.go @@ -1183,52 +1183,6 @@ func (s *ProvisioningIssue) MarshalJSON() ([]byte, error) { return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) } -// ResourcesCount: ResourcesCount represents the resource that stores -// aggregated project's info in the given location, e.g.: total number -// of certificates assigned to the project. -type ResourcesCount struct { - // Certificates: The count of certificates. - Certificates uint64 `json:"certificates,omitempty,string"` - - // ComputeTime: Required. Input only. The time of the computation. The - // field is input only, used in Create and Update calls. For Update - // call, new values of selected resources are set if their compute_time - // is younger than the persisted ones, e.g.: If you support 3 types of - // resources: A, B and C, and you have: 'A' resource count computed at - // timestamp = 3 'B' resource count computed at timestamp = 10 'C' - // resource count computed at timestamp = 5 And you're going to update - // all of them with compute_time = 8, only 'A' and 'C' will be updated, - // as 'B' already has fresher data. For Get call a ResourcesCount - // instance contains the freshest values for every type. - ComputeTime string `json:"computeTime,omitempty"` - - // Name: The singleton resource of the resources count. Must be in the - // format `projects/*/locations/*/resourcesCounts/single`. - Name string `json:"name,omitempty"` - - // ForceSendFields is a list of field names (e.g. "Certificates") 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. "Certificates") 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 *ResourcesCount) MarshalJSON() ([]byte, error) { - type NoMethod ResourcesCount - raw := NoMethod(*s) - return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) -} - // SelfManagedCertificate: Certificate data for a SelfManaged // Certificate. SelfManaged Certificates are uploaded by the user. // Updating such certificates before they expire remains the user's diff --git a/chromepolicy/v1/chromepolicy-api.json b/chromepolicy/v1/chromepolicy-api.json index 7917c422d16..9ec9f1794a6 100644 --- a/chromepolicy/v1/chromepolicy-api.json +++ b/chromepolicy/v1/chromepolicy-api.json @@ -278,9 +278,53 @@ } } } + }, + "media": { + "methods": { + "upload": { + "description": "Creates an enterprise file from the content provided by user. Returns a public download url for end user.", + "flatPath": "v1/customers/{customersId}/policies/files:uploadPolicyFile", + "httpMethod": "POST", + "id": "chromepolicy.media.upload", + "mediaUpload": { + "accept": [ + "*/*" + ], + "protocols": { + "simple": { + "multipart": true, + "path": "/upload/v1/{+customer}/policies/files:uploadPolicyFile" + } + } + }, + "parameterOrder": [ + "customer" + ], + "parameters": { + "customer": { + "description": "Required. The customer for which the file upload will apply.", + "location": "path", + "pattern": "^customers/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+customer}/policies/files:uploadPolicyFile", + "request": { + "$ref": "GoogleChromePolicyV1UploadPolicyFileRequest" + }, + "response": { + "$ref": "GoogleChromePolicyV1UploadPolicyFileResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/chrome.management.policy" + ], + "supportsMediaUpload": true + } + } } }, - "revision": "20220706", + "revision": "20220718", "rootUrl": "https://chromepolicy.googleapis.com/", "schemas": { "ChromeCrosDpanelAutosettingsProtoPolicyApiLifecycle": { @@ -736,6 +780,28 @@ }, "type": "object" }, + "GoogleChromePolicyV1UploadPolicyFileRequest": { + "description": "Request message for uploading a file for a policy. Next ID: 5", + "id": "GoogleChromePolicyV1UploadPolicyFileRequest", + "properties": { + "policyField": { + "description": "Required. The fully qualified policy schema and field name this file is uploaded for. This information will be used to validate the content type of the file.", + "type": "string" + } + }, + "type": "object" + }, + "GoogleChromePolicyV1UploadPolicyFileResponse": { + "description": "Response message for downloading an uploaded file. Next ID: 2", + "id": "GoogleChromePolicyV1UploadPolicyFileResponse", + "properties": { + "downloadUri": { + "description": "The uri for end user to download the file.", + "type": "string" + } + }, + "type": "object" + }, "GoogleProtobufEmpty": { "description": "A generic empty message that you can re-use to avoid defining duplicated empty messages in your APIs. A typical example is to use it as the request or the response type of an API method. For instance: service Foo { rpc Bar(google.protobuf.Empty) returns (google.protobuf.Empty); }", "id": "GoogleProtobufEmpty", diff --git a/chromepolicy/v1/chromepolicy-gen.go b/chromepolicy/v1/chromepolicy-gen.go index 9a36894b462..3c7732021d4 100644 --- a/chromepolicy/v1/chromepolicy-gen.go +++ b/chromepolicy/v1/chromepolicy-gen.go @@ -128,6 +128,7 @@ func New(client *http.Client) (*Service, error) { } s := &Service{client: client, BasePath: basePath} s.Customers = NewCustomersService(s) + s.Media = NewMediaService(s) return s, nil } @@ -137,6 +138,8 @@ type Service struct { UserAgent string // optional additional User-Agent fragment Customers *CustomersService + + Media *MediaService } func (s *Service) userAgent() string { @@ -191,6 +194,15 @@ type CustomersPolicySchemasService struct { s *Service } +func NewMediaService(s *Service) *MediaService { + rs := &MediaService{s: s} + return rs +} + +type MediaService struct { + s *Service +} + type ChromeCrosDpanelAutosettingsProtoPolicyApiLifecycle struct { // Description: Description about current life cycle. Description string `json:"description,omitempty"` @@ -960,6 +972,70 @@ func (s *GoogleChromePolicyV1ResolvedPolicy) MarshalJSON() ([]byte, error) { return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) } +// GoogleChromePolicyV1UploadPolicyFileRequest: Request message for +// uploading a file for a policy. Next ID: 5 +type GoogleChromePolicyV1UploadPolicyFileRequest struct { + // PolicyField: Required. The fully qualified policy schema and field + // name this file is uploaded for. This information will be used to + // validate the content type of the file. + PolicyField string `json:"policyField,omitempty"` + + // ForceSendFields is a list of field names (e.g. "PolicyField") 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. "PolicyField") 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 *GoogleChromePolicyV1UploadPolicyFileRequest) MarshalJSON() ([]byte, error) { + type NoMethod GoogleChromePolicyV1UploadPolicyFileRequest + raw := NoMethod(*s) + return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) +} + +// GoogleChromePolicyV1UploadPolicyFileResponse: Response message for +// downloading an uploaded file. Next ID: 2 +type GoogleChromePolicyV1UploadPolicyFileResponse struct { + // DownloadUri: The uri for end user to download the file. + DownloadUri string `json:"downloadUri,omitempty"` + + // ServerResponse contains the HTTP response code and headers from the + // server. + googleapi.ServerResponse `json:"-"` + + // ForceSendFields is a list of field names (e.g. "DownloadUri") 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. "DownloadUri") 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 *GoogleChromePolicyV1UploadPolicyFileResponse) MarshalJSON() ([]byte, error) { + type NoMethod GoogleChromePolicyV1UploadPolicyFileResponse + raw := NoMethod(*s) + return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) +} + // GoogleProtobufEmpty: A generic empty message that you can re-use to // avoid defining duplicated empty messages in your APIs. A typical // example is to use it as the request or the response type of an API @@ -2109,3 +2185,228 @@ func (c *CustomersPolicySchemasListCall) Pages(ctx context.Context, f func(*Goog c.PageToken(x.NextPageToken) } } + +// method id "chromepolicy.media.upload": + +type MediaUploadCall struct { + s *Service + customer string + googlechromepolicyv1uploadpolicyfilerequest *GoogleChromePolicyV1UploadPolicyFileRequest + urlParams_ gensupport.URLParams + mediaInfo_ *gensupport.MediaInfo + ctx_ context.Context + header_ http.Header +} + +// Upload: Creates an enterprise file from the content provided by user. +// Returns a public download url for end user. +// +// - customer: The customer for which the file upload will apply. +func (r *MediaService) Upload(customer string, googlechromepolicyv1uploadpolicyfilerequest *GoogleChromePolicyV1UploadPolicyFileRequest) *MediaUploadCall { + c := &MediaUploadCall{s: r.s, urlParams_: make(gensupport.URLParams)} + c.customer = customer + c.googlechromepolicyv1uploadpolicyfilerequest = googlechromepolicyv1uploadpolicyfilerequest + return c +} + +// Media specifies the media to upload in one or more chunks. The chunk +// size may be controlled by supplying a MediaOption generated by +// googleapi.ChunkSize. The chunk size defaults to +// googleapi.DefaultUploadChunkSize.The Content-Type header used in the +// upload request will be determined by sniffing the contents of r, +// unless a MediaOption generated by googleapi.ContentType is +// supplied. +// At most one of Media and ResumableMedia may be set. +func (c *MediaUploadCall) Media(r io.Reader, options ...googleapi.MediaOption) *MediaUploadCall { + c.mediaInfo_ = gensupport.NewInfoFromMedia(r, options) + return c +} + +// ResumableMedia specifies the media to upload in chunks and can be +// canceled with ctx. +// +// Deprecated: use Media instead. +// +// At most one of Media and ResumableMedia may be set. mediaType +// identifies the MIME media type of the upload, such as "image/png". If +// mediaType is "", it will be auto-detected. The provided ctx will +// supersede any context previously provided to the Context method. +func (c *MediaUploadCall) ResumableMedia(ctx context.Context, r io.ReaderAt, size int64, mediaType string) *MediaUploadCall { + c.ctx_ = ctx + c.mediaInfo_ = gensupport.NewInfoFromResumableMedia(r, size, mediaType) + return c +} + +// ProgressUpdater provides a callback function that will be called +// after every chunk. It should be a low-latency function in order to +// not slow down the upload operation. This should only be called when +// using ResumableMedia (as opposed to Media). +func (c *MediaUploadCall) ProgressUpdater(pu googleapi.ProgressUpdater) *MediaUploadCall { + c.mediaInfo_.SetProgressUpdater(pu) + return c +} + +// Fields allows partial responses to be retrieved. See +// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse +// for more information. +func (c *MediaUploadCall) Fields(s ...googleapi.Field) *MediaUploadCall { + c.urlParams_.Set("fields", googleapi.CombineFields(s)) + return c +} + +// Context sets the context to be used in this call's Do method. Any +// pending HTTP request will be aborted if the provided context is +// canceled. +// This context will supersede any context previously provided to the +// ResumableMedia method. +func (c *MediaUploadCall) Context(ctx context.Context) *MediaUploadCall { + c.ctx_ = ctx + return c +} + +// Header returns an http.Header that can be modified by the caller to +// add HTTP headers to the request. +func (c *MediaUploadCall) Header() http.Header { + if c.header_ == nil { + c.header_ = make(http.Header) + } + return c.header_ +} + +func (c *MediaUploadCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := make(http.Header) + reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/"+internal.Version) + for k, v := range c.header_ { + reqHeaders[k] = v + } + reqHeaders.Set("User-Agent", c.s.userAgent()) + var body io.Reader = nil + body, err := googleapi.WithoutDataWrapper.JSONReader(c.googlechromepolicyv1uploadpolicyfilerequest) + if err != nil { + return nil, err + } + reqHeaders.Set("Content-Type", "application/json") + c.urlParams_.Set("alt", alt) + c.urlParams_.Set("prettyPrint", "false") + urls := googleapi.ResolveRelative(c.s.BasePath, "v1/{+customer}/policies/files:uploadPolicyFile") + if c.mediaInfo_ != nil { + urls = googleapi.ResolveRelative(c.s.BasePath, "/upload/v1/{+customer}/policies/files:uploadPolicyFile") + c.urlParams_.Set("uploadType", c.mediaInfo_.UploadType()) + } + if body == nil { + body = new(bytes.Buffer) + reqHeaders.Set("Content-Type", "application/json") + } + body, getBody, cleanup := c.mediaInfo_.UploadRequest(reqHeaders, body) + defer cleanup() + urls += "?" + c.urlParams_.Encode() + req, err := http.NewRequest("POST", urls, body) + if err != nil { + return nil, err + } + req.Header = reqHeaders + req.GetBody = getBody + googleapi.Expand(req.URL, map[string]string{ + "customer": c.customer, + }) + return gensupport.SendRequest(c.ctx_, c.s.client, req) +} + +// Do executes the "chromepolicy.media.upload" call. +// Exactly one of *GoogleChromePolicyV1UploadPolicyFileResponse or error +// will be non-nil. Any non-2xx status code is an error. Response +// headers are in either +// *GoogleChromePolicyV1UploadPolicyFileResponse.ServerResponse.Header +// or (if a response was returned at all) in +// error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check +// whether the returned error was because http.StatusNotModified was +// returned. +func (c *MediaUploadCall) Do(opts ...googleapi.CallOption) (*GoogleChromePolicyV1UploadPolicyFileResponse, error) { + gensupport.SetOptions(c.urlParams_, opts...) + res, err := c.doRequest("json") + if res != nil && res.StatusCode == http.StatusNotModified { + if res.Body != nil { + res.Body.Close() + } + return nil, &googleapi.Error{ + Code: res.StatusCode, + Header: res.Header, + } + } + if err != nil { + return nil, err + } + defer googleapi.CloseBody(res) + if err := googleapi.CheckResponse(res); err != nil { + return nil, err + } + rx := c.mediaInfo_.ResumableUpload(res.Header.Get("Location")) + if rx != nil { + rx.Client = c.s.client + rx.UserAgent = c.s.userAgent() + ctx := c.ctx_ + if ctx == nil { + ctx = context.TODO() + } + res, err = rx.Upload(ctx) + if err != nil { + return nil, err + } + defer res.Body.Close() + if err := googleapi.CheckResponse(res); err != nil { + return nil, err + } + } + ret := &GoogleChromePolicyV1UploadPolicyFileResponse{ + ServerResponse: googleapi.ServerResponse{ + Header: res.Header, + HTTPStatusCode: res.StatusCode, + }, + } + target := &ret + if err := gensupport.DecodeResponse(target, res); err != nil { + return nil, err + } + return ret, nil + // { + // "description": "Creates an enterprise file from the content provided by user. Returns a public download url for end user.", + // "flatPath": "v1/customers/{customersId}/policies/files:uploadPolicyFile", + // "httpMethod": "POST", + // "id": "chromepolicy.media.upload", + // "mediaUpload": { + // "accept": [ + // "*/*" + // ], + // "protocols": { + // "simple": { + // "multipart": true, + // "path": "/upload/v1/{+customer}/policies/files:uploadPolicyFile" + // } + // } + // }, + // "parameterOrder": [ + // "customer" + // ], + // "parameters": { + // "customer": { + // "description": "Required. The customer for which the file upload will apply.", + // "location": "path", + // "pattern": "^customers/[^/]+$", + // "required": true, + // "type": "string" + // } + // }, + // "path": "v1/{+customer}/policies/files:uploadPolicyFile", + // "request": { + // "$ref": "GoogleChromePolicyV1UploadPolicyFileRequest" + // }, + // "response": { + // "$ref": "GoogleChromePolicyV1UploadPolicyFileResponse" + // }, + // "scopes": [ + // "https://www.googleapis.com/auth/chrome.management.policy" + // ], + // "supportsMediaUpload": true + // } + +} diff --git a/content/v2.1/content-api.json b/content/v2.1/content-api.json index c7f464e353d..5dfaeaac3a4 100644 --- a/content/v2.1/content-api.json +++ b/content/v2.1/content-api.json @@ -973,48 +973,6 @@ } } }, - "accountstatusesbyexternalsellerid": { - "methods": { - "get": { - "description": "Gets status of the account with the specified external_seller_id belonging to the MCA with the specified merchant_id.", - "flatPath": "{merchantId}/accountstatusesbyexternalsellerid/{externalSellerId}", - "httpMethod": "GET", - "id": "content.accountstatusesbyexternalsellerid.get", - "parameterOrder": [ - "merchantId", - "externalSellerId" - ], - "parameters": { - "destinations": { - "description": "If set, only issues for the specified destinations are returned, otherwise only issues for the Shopping destination.", - "location": "query", - "repeated": true, - "type": "string" - }, - "externalSellerId": { - "description": "Required. The External Seller ID of the seller account to be retrieved.", - "location": "path", - "required": true, - "type": "string" - }, - "merchantId": { - "description": "Required. The ID of the MCA containing the seller.", - "format": "int64", - "location": "path", - "required": true, - "type": "string" - } - }, - "path": "{merchantId}/accountstatusesbyexternalsellerid/{externalSellerId}", - "response": { - "$ref": "AccountStatus" - }, - "scopes": [ - "https://www.googleapis.com/auth/content" - ] - } - } - }, "accounttax": { "methods": { "custombatch": { @@ -5950,7 +5908,7 @@ } } }, - "revision": "20220701", + "revision": "20220713", "rootUrl": "https://shoppingcontent.googleapis.com/", "schemas": { "Account": { diff --git a/content/v2.1/content-gen.go b/content/v2.1/content-gen.go index 2efc91845d7..6b51da9f200 100644 --- a/content/v2.1/content-gen.go +++ b/content/v2.1/content-gen.go @@ -119,7 +119,6 @@ func New(client *http.Client) (*APIService, error) { s := &APIService{client: client, BasePath: basePath} s.Accounts = NewAccountsService(s) s.Accountstatuses = NewAccountstatusesService(s) - s.Accountstatusesbyexternalsellerid = NewAccountstatusesbyexternalselleridService(s) s.Accounttax = NewAccounttaxService(s) s.Buyongoogleprograms = NewBuyongoogleprogramsService(s) s.Collections = NewCollectionsService(s) @@ -164,8 +163,6 @@ type APIService struct { Accountstatuses *AccountstatusesService - Accountstatusesbyexternalsellerid *AccountstatusesbyexternalselleridService - Accounttax *AccounttaxService Buyongoogleprograms *BuyongoogleprogramsService @@ -292,15 +289,6 @@ type AccountstatusesService struct { s *APIService } -func NewAccountstatusesbyexternalselleridService(s *APIService) *AccountstatusesbyexternalselleridService { - rs := &AccountstatusesbyexternalselleridService{s: s} - return rs -} - -type AccountstatusesbyexternalselleridService struct { - s *APIService -} - func NewAccounttaxService(s *APIService) *AccounttaxService { rs := &AccounttaxService{s: s} return rs @@ -22343,179 +22331,6 @@ func (c *AccountstatusesListCall) Pages(ctx context.Context, f func(*Accountstat } } -// method id "content.accountstatusesbyexternalsellerid.get": - -type AccountstatusesbyexternalselleridGetCall struct { - s *APIService - merchantId int64 - externalSellerId string - urlParams_ gensupport.URLParams - ifNoneMatch_ string - ctx_ context.Context - header_ http.Header -} - -// Get: Gets status of the account with the specified external_seller_id -// belonging to the MCA with the specified merchant_id. -// -// - externalSellerId: The External Seller ID of the seller account to -// be retrieved. -// - merchantId: The ID of the MCA containing the seller. -func (r *AccountstatusesbyexternalselleridService) Get(merchantId int64, externalSellerId string) *AccountstatusesbyexternalselleridGetCall { - c := &AccountstatusesbyexternalselleridGetCall{s: r.s, urlParams_: make(gensupport.URLParams)} - c.merchantId = merchantId - c.externalSellerId = externalSellerId - return c -} - -// Destinations sets the optional parameter "destinations": If set, only -// issues for the specified destinations are returned, otherwise only -// issues for the Shopping destination. -func (c *AccountstatusesbyexternalselleridGetCall) Destinations(destinations ...string) *AccountstatusesbyexternalselleridGetCall { - c.urlParams_.SetMulti("destinations", append([]string{}, destinations...)) - return c -} - -// Fields allows partial responses to be retrieved. See -// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse -// for more information. -func (c *AccountstatusesbyexternalselleridGetCall) Fields(s ...googleapi.Field) *AccountstatusesbyexternalselleridGetCall { - c.urlParams_.Set("fields", googleapi.CombineFields(s)) - return c -} - -// IfNoneMatch sets the optional parameter which makes the operation -// fail if the object's ETag matches the given value. This is useful for -// getting updates only after the object has changed since the last -// request. Use googleapi.IsNotModified to check whether the response -// error from Do is the result of In-None-Match. -func (c *AccountstatusesbyexternalselleridGetCall) IfNoneMatch(entityTag string) *AccountstatusesbyexternalselleridGetCall { - c.ifNoneMatch_ = entityTag - return c -} - -// Context sets the context to be used in this call's Do method. Any -// pending HTTP request will be aborted if the provided context is -// canceled. -func (c *AccountstatusesbyexternalselleridGetCall) Context(ctx context.Context) *AccountstatusesbyexternalselleridGetCall { - c.ctx_ = ctx - return c -} - -// Header returns an http.Header that can be modified by the caller to -// add HTTP headers to the request. -func (c *AccountstatusesbyexternalselleridGetCall) Header() http.Header { - if c.header_ == nil { - c.header_ = make(http.Header) - } - return c.header_ -} - -func (c *AccountstatusesbyexternalselleridGetCall) doRequest(alt string) (*http.Response, error) { - reqHeaders := make(http.Header) - reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/"+internal.Version) - for k, v := range c.header_ { - reqHeaders[k] = v - } - reqHeaders.Set("User-Agent", c.s.userAgent()) - if c.ifNoneMatch_ != "" { - reqHeaders.Set("If-None-Match", c.ifNoneMatch_) - } - var body io.Reader = nil - c.urlParams_.Set("alt", alt) - c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "{merchantId}/accountstatusesbyexternalsellerid/{externalSellerId}") - urls += "?" + c.urlParams_.Encode() - req, err := http.NewRequest("GET", urls, body) - if err != nil { - return nil, err - } - req.Header = reqHeaders - googleapi.Expand(req.URL, map[string]string{ - "merchantId": strconv.FormatInt(c.merchantId, 10), - "externalSellerId": c.externalSellerId, - }) - return gensupport.SendRequest(c.ctx_, c.s.client, req) -} - -// Do executes the "content.accountstatusesbyexternalsellerid.get" call. -// Exactly one of *AccountStatus or error will be non-nil. Any non-2xx -// status code is an error. Response headers are in either -// *AccountStatus.ServerResponse.Header or (if a response was returned -// at all) in error.(*googleapi.Error).Header. Use -// googleapi.IsNotModified to check whether the returned error was -// because http.StatusNotModified was returned. -func (c *AccountstatusesbyexternalselleridGetCall) Do(opts ...googleapi.CallOption) (*AccountStatus, error) { - gensupport.SetOptions(c.urlParams_, opts...) - res, err := c.doRequest("json") - if res != nil && res.StatusCode == http.StatusNotModified { - if res.Body != nil { - res.Body.Close() - } - return nil, &googleapi.Error{ - Code: res.StatusCode, - Header: res.Header, - } - } - if err != nil { - return nil, err - } - defer googleapi.CloseBody(res) - if err := googleapi.CheckResponse(res); err != nil { - return nil, err - } - ret := &AccountStatus{ - ServerResponse: googleapi.ServerResponse{ - Header: res.Header, - HTTPStatusCode: res.StatusCode, - }, - } - target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { - return nil, err - } - return ret, nil - // { - // "description": "Gets status of the account with the specified external_seller_id belonging to the MCA with the specified merchant_id.", - // "flatPath": "{merchantId}/accountstatusesbyexternalsellerid/{externalSellerId}", - // "httpMethod": "GET", - // "id": "content.accountstatusesbyexternalsellerid.get", - // "parameterOrder": [ - // "merchantId", - // "externalSellerId" - // ], - // "parameters": { - // "destinations": { - // "description": "If set, only issues for the specified destinations are returned, otherwise only issues for the Shopping destination.", - // "location": "query", - // "repeated": true, - // "type": "string" - // }, - // "externalSellerId": { - // "description": "Required. The External Seller ID of the seller account to be retrieved.", - // "location": "path", - // "required": true, - // "type": "string" - // }, - // "merchantId": { - // "description": "Required. The ID of the MCA containing the seller.", - // "format": "int64", - // "location": "path", - // "required": true, - // "type": "string" - // } - // }, - // "path": "{merchantId}/accountstatusesbyexternalsellerid/{externalSellerId}", - // "response": { - // "$ref": "AccountStatus" - // }, - // "scopes": [ - // "https://www.googleapis.com/auth/content" - // ] - // } - -} - // method id "content.accounttax.custombatch": type AccounttaxCustombatchCall struct { diff --git a/dataplex/v1/dataplex-api.json b/dataplex/v1/dataplex-api.json index 06f37994785..0571d059d72 100644 --- a/dataplex/v1/dataplex-api.json +++ b/dataplex/v1/dataplex-api.json @@ -227,7 +227,7 @@ ], "parameters": { "name": { - "description": "Required. The resource name of the lake: projects/{project_number}/locations/{location_id}/lakes/{lake_id}", + "description": "Required. The resource name of the lake: projects/{project_number}/locations/{location_id}/lakes/{lake_id}.", "location": "path", "pattern": "^projects/[^/]+/locations/[^/]+/lakes/[^/]+$", "required": true, @@ -252,7 +252,7 @@ ], "parameters": { "name": { - "description": "Required. The resource name of the lake: projects/{project_number}/locations/{location_id}/lakes/{lake_id}", + "description": "Required. The resource name of the lake: projects/{project_number}/locations/{location_id}/lakes/{lake_id}.", "location": "path", "pattern": "^projects/[^/]+/locations/[^/]+/lakes/[^/]+$", "required": true, @@ -464,7 +464,7 @@ "type": "string" }, "parent": { - "description": "Required. The resource name of the parent lake: projects/{project_number}/locations/{location_id}/lakes/{lake_id}", + "description": "Required. The resource name of the parent lake: projects/{project_number}/locations/{location_id}/lakes/{lake_id}.", "location": "path", "pattern": "^projects/[^/]+/locations/[^/]+/lakes/[^/]+$", "required": true, @@ -1036,7 +1036,7 @@ "type": "string" }, "parent": { - "description": "Required. The resource name of the parent lake: projects/{project_id}/locations/{location_id}/lakes/{lake_id}", + "description": "Required. The resource name of the parent lake: projects/{project_id}/locations/{location_id}/lakes/{lake_id}.", "location": "path", "pattern": "^projects/[^/]+/locations/[^/]+/lakes/[^/]+$", "required": true, @@ -1069,7 +1069,7 @@ ], "parameters": { "name": { - "description": "Required. The resource name of the environment: projects/{project_id}/locations/{location_id}/lakes/{lake_id}/environments/{environment_id}`", + "description": "Required. The resource name of the environment: projects/{project_id}/locations/{location_id}/lakes/{lake_id}/environments/{environment_id}.", "location": "path", "pattern": "^projects/[^/]+/locations/[^/]+/lakes/[^/]+/environments/[^/]+$", "required": true, @@ -1094,7 +1094,7 @@ ], "parameters": { "name": { - "description": "Required. The resource name of the environment: projects/{project_id}/locations/{location_id}/lakes/{lake_id}/environments/{environment_id}", + "description": "Required. The resource name of the environment: projects/{project_id}/locations/{location_id}/lakes/{lake_id}/environments/{environment_id}.", "location": "path", "pattern": "^projects/[^/]+/locations/[^/]+/lakes/[^/]+/environments/[^/]+$", "required": true, @@ -1171,7 +1171,7 @@ "type": "string" }, "parent": { - "description": "Required. The resource name of the parent lake: projects/{project_id}/locations/{location_id}/lakes/{lake_id}", + "description": "Required. The resource name of the parent lake: projects/{project_id}/locations/{location_id}/lakes/{lake_id}.", "location": "path", "pattern": "^projects/[^/]+/locations/[^/]+/lakes/[^/]+$", "required": true, @@ -1311,7 +1311,7 @@ "type": "string" }, "parent": { - "description": "Required. The resource name of the parent environment: projects/{project_number}/locations/{location_id}/lakes/{lake_id}/environment/{environment_id}", + "description": "Required. The resource name of the parent environment: projects/{project_number}/locations/{location_id}/lakes/{lake_id}/environment/{environment_id}.", "location": "path", "pattern": "^projects/[^/]+/locations/[^/]+/lakes/[^/]+/environments/[^/]+$", "required": true, @@ -1342,7 +1342,7 @@ ], "parameters": { "parent": { - "description": "Required. The resource name of the parent lake: projects/{project_number}/locations/{location_id}/lakes/{lake_id}", + "description": "Required. The resource name of the parent lake: projects/{project_number}/locations/{location_id}/lakes/{lake_id}.", "location": "path", "pattern": "^projects/[^/]+/locations/[^/]+/lakes/[^/]+$", "required": true, @@ -1380,7 +1380,7 @@ ], "parameters": { "name": { - "description": "Required. The resource name of the task: projects/{project_number}/locations/{location_id}/lakes/{lake_id} /task/{task_id}`", + "description": "Required. The resource name of the task: projects/{project_number}/locations/{location_id}/lakes/{lake_id}/task/{task_id}.", "location": "path", "pattern": "^projects/[^/]+/locations/[^/]+/lakes/[^/]+/tasks/[^/]+$", "required": true, @@ -1405,7 +1405,7 @@ ], "parameters": { "name": { - "description": "Required. The resource name of the task: projects/{project_number}/locations/{location_id}/lakes/{lake_id} /tasks/{tasks_id}", + "description": "Required. The resource name of the task: projects/{project_number}/locations/{location_id}/lakes/{lake_id}/tasks/{tasks_id}.", "location": "path", "pattern": "^projects/[^/]+/locations/[^/]+/lakes/[^/]+/tasks/[^/]+$", "required": true, @@ -1482,7 +1482,7 @@ "type": "string" }, "parent": { - "description": "Required. The resource name of the parent lake: projects/{project_number}/locations/{location_id}/lakes/{lake_id}", + "description": "Required. The resource name of the parent lake: projects/{project_number}/locations/{location_id}/lakes/{lake_id}.", "location": "path", "pattern": "^projects/[^/]+/locations/[^/]+/lakes/[^/]+$", "required": true, @@ -1606,7 +1606,7 @@ ], "parameters": { "name": { - "description": "Required. The resource name of the job: projects/{project_number}/locations/{location_id}/lakes/{lake_id} /task/{task_id}/job/{job_id}`", + "description": "Required. The resource name of the job: projects/{project_number}/locations/{location_id}/lakes/{lake_id}/task/{task_id}/job/{job_id}.", "location": "path", "pattern": "^projects/[^/]+/locations/[^/]+/lakes/[^/]+/tasks/[^/]+/jobs/[^/]+$", "required": true, @@ -1634,7 +1634,7 @@ ], "parameters": { "name": { - "description": "Required. The resource name of the job: projects/{project_number}/locations/{location_id}/lakes/{lake_id} /tasks/{task_id}/jobs/{job_id}", + "description": "Required. The resource name of the job: projects/{project_number}/locations/{location_id}/lakes/{lake_id}/tasks/{task_id}/jobs/{job_id}.", "location": "path", "pattern": "^projects/[^/]+/locations/[^/]+/lakes/[^/]+/tasks/[^/]+/jobs/[^/]+$", "required": true, @@ -1670,7 +1670,7 @@ "type": "string" }, "parent": { - "description": "Required. The resource name of the parent environment: projects/{project_number}/locations/{location_id}/lakes/{lake_id}/tasks/{task_id}", + "description": "Required. The resource name of the parent environment: projects/{project_number}/locations/{location_id}/lakes/{lake_id}/tasks/{task_id}.", "location": "path", "pattern": "^projects/[^/]+/locations/[^/]+/lakes/[^/]+/tasks/[^/]+$", "required": true, @@ -1701,7 +1701,7 @@ ], "parameters": { "parent": { - "description": "Required. The resource name of the parent lake: projects/{project_number}/locations/{location_id}/lakes/{lake_id}", + "description": "Required. The resource name of the parent lake: projects/{project_number}/locations/{location_id}/lakes/{lake_id}.", "location": "path", "pattern": "^projects/[^/]+/locations/[^/]+/lakes/[^/]+$", "required": true, @@ -1739,7 +1739,7 @@ ], "parameters": { "name": { - "description": "Required. The resource name of the zone: projects/{project_number}/locations/{location_id}/lakes/{lake_id} /zones/{zone_id}`", + "description": "Required. The resource name of the zone: projects/{project_number}/locations/{location_id}/lakes/{lake_id}/zones/{zone_id}.", "location": "path", "pattern": "^projects/[^/]+/locations/[^/]+/lakes/[^/]+/zones/[^/]+$", "required": true, @@ -1764,7 +1764,7 @@ ], "parameters": { "name": { - "description": "Required. The resource name of the zone: projects/{project_number}/locations/{location_id}/lakes/{lake_id} /zones/{zone_id}", + "description": "Required. The resource name of the zone: projects/{project_number}/locations/{location_id}/lakes/{lake_id}/zones/{zone_id}.", "location": "path", "pattern": "^projects/[^/]+/locations/[^/]+/lakes/[^/]+/zones/[^/]+$", "required": true, @@ -1841,7 +1841,7 @@ "type": "string" }, "parent": { - "description": "Required. The resource name of the parent lake: projects/{project_number}/locations/{location_id}/lakes/{lake_id}", + "description": "Required. The resource name of the parent lake: projects/{project_number}/locations/{location_id}/lakes/{lake_id}.", "location": "path", "pattern": "^projects/[^/]+/locations/[^/]+/lakes/[^/]+$", "required": true, @@ -1976,7 +1976,7 @@ "type": "string" }, "parent": { - "description": "Required. The resource name of the parent zone: projects/{project_number}/locations/{location_id}/lakes/{lake_id}/zones/{zone_id}", + "description": "Required. The resource name of the parent zone: projects/{project_number}/locations/{location_id}/lakes/{lake_id}/zones/{zone_id}.", "location": "path", "pattern": "^projects/[^/]+/locations/[^/]+/lakes/[^/]+/zones/[^/]+$", "required": true, @@ -2010,7 +2010,7 @@ "type": "string" }, "parent": { - "description": "Required. The resource name of the parent zone: projects/{project_number}/locations/{location_id}/lakes/{lake_id} /zones/{zone_id}`", + "description": "Required. The resource name of the parent zone: projects/{project_number}/locations/{location_id}/lakes/{lake_id}/zones/{zone_id}.", "location": "path", "pattern": "^projects/[^/]+/locations/[^/]+/lakes/[^/]+/zones/[^/]+$", "required": true, @@ -2043,7 +2043,7 @@ ], "parameters": { "name": { - "description": "Required. The resource name of the asset: projects/{project_number}/locations/{location_id}/lakes/{lake_id} /zones/{zone_id}/assets/{asset_id}", + "description": "Required. The resource name of the asset: projects/{project_number}/locations/{location_id}/lakes/{lake_id}/zones/{zone_id}/assets/{asset_id}.", "location": "path", "pattern": "^projects/[^/]+/locations/[^/]+/lakes/[^/]+/zones/[^/]+/assets/[^/]+$", "required": true, @@ -2068,7 +2068,7 @@ ], "parameters": { "name": { - "description": "Required. The resource name of the asset: projects/{project_number}/locations/{location_id}/lakes/{lake_id} /zones/{zone_id}/assets/{asset_id}", + "description": "Required. The resource name of the asset: projects/{project_number}/locations/{location_id}/lakes/{lake_id}/zones/{zone_id}/assets/{asset_id}.", "location": "path", "pattern": "^projects/[^/]+/locations/[^/]+/lakes/[^/]+/zones/[^/]+/assets/[^/]+$", "required": true, @@ -2145,7 +2145,7 @@ "type": "string" }, "parent": { - "description": "Required. The resource name of the parent zone: projects/{project_number}/locations/{location_id}/lakes/{lake_id} /zones/{zone_id}`", + "description": "Required. The resource name of the parent zone: projects/{project_number}/locations/{location_id}/lakes/{lake_id}/zones/{zone_id}.", "location": "path", "pattern": "^projects/[^/]+/locations/[^/]+/lakes/[^/]+/zones/[^/]+$", "required": true, @@ -2280,7 +2280,7 @@ "type": "string" }, "parent": { - "description": "Required. The resource name of the parent asset: projects/{project_number}/locations/{location_id}/lakes/{lake_id}/zones/{zone_id}/assets/{asset_id}", + "description": "Required. The resource name of the parent asset: projects/{project_number}/locations/{location_id}/lakes/{lake_id}/zones/{zone_id}/assets/{asset_id}.", "location": "path", "pattern": "^projects/[^/]+/locations/[^/]+/lakes/[^/]+/zones/[^/]+/assets/[^/]+$", "required": true, @@ -2764,7 +2764,7 @@ } } }, - "revision": "20220531", + "revision": "20220711", "rootUrl": "https://dataplex.googleapis.com/", "schemas": { "Empty": { @@ -3921,12 +3921,12 @@ "type": "string" }, "name": { - "description": "Output only. The relative resource name of the job, of the form: projects/{project_number}/locations/{location_id}/lakes/{lake_id}/ tasks/{task_id}/jobs/{job_id}.", + "description": "Output only. The relative resource name of the job, of the form: projects/{project_number}/locations/{location_id}/lakes/{lake_id}/tasks/{task_id}/jobs/{job_id}.", "readOnly": true, "type": "string" }, "retryCount": { - "description": "Output only. . The number of times the job has been retried (excluding the initial attempt).", + "description": "Output only. The number of times the job has been retried (excluding the initial attempt).", "format": "uint32", "readOnly": true, "type": "integer" @@ -4962,6 +4962,10 @@ "description": "Optional. The arguments to pass to the task. The args can use placeholders of the format ${placeholder} as part of key/value string. These will be interpolated before passing the args to the driver. Currently supported placeholders: - ${task_id} - ${job_time} To pass positional args, set the key as TASK_ARGS. The value should be a comma-separated string of all the positional arguments. To use a delimiter other than comma, refer to https://cloud.google.com/sdk/gcloud/reference/topic/escaping. In case of other keys being present in the args, then TASK_ARGS will be passed as the last argument.", "type": "object" }, + "kmsKey": { + "description": "Optional. The Cloud KMS key to use for encryption, of the form: projects/{project_number}/locations/{location_id}/keyRings/{key-ring-name}/cryptoKeys/{key-name}.", + "type": "string" + }, "maxJobExecutionLifetime": { "description": "Optional. The maximum duration after which the job execution is expired.", "format": "google-duration", @@ -5036,6 +5040,10 @@ "description": "Container Image Runtime Configuration used with Batch execution.", "id": "GoogleCloudDataplexV1TaskInfrastructureSpecContainerImageRuntime", "properties": { + "image": { + "description": "Optional. Container image to use.", + "type": "string" + }, "javaJars": { "description": "Optional. A list of Java JARS to add to the classpath. Valid input includes Cloud Storage URIs to Jar binaries. For example, gs://bucket-name/my/path/to/file.jar", "items": { diff --git a/dataplex/v1/dataplex-gen.go b/dataplex/v1/dataplex-gen.go index babf2b05da4..8efcab7be95 100644 --- a/dataplex/v1/dataplex-gen.go +++ b/dataplex/v1/dataplex-gen.go @@ -1964,12 +1964,12 @@ type GoogleCloudDataplexV1Job struct { // Name: Output only. The relative resource name of the job, of the // form: - // projects/{project_number}/locations/{location_id}/lakes/{lake_id}/ - // tasks/{task_id}/jobs/{job_id}. + // projects/{project_number}/locations/{location_id}/lakes/{lake_id}/task + // s/{task_id}/jobs/{job_id}. Name string `json:"name,omitempty"` - // RetryCount: Output only. . The number of times the job has been - // retried (excluding the initial attempt). + // RetryCount: Output only. The number of times the job has been retried + // (excluding the initial attempt). RetryCount int64 `json:"retryCount,omitempty"` // Service: Output only. The underlying service running a job. @@ -3341,6 +3341,12 @@ type GoogleCloudDataplexV1TaskExecutionSpec struct { // passed as the last argument. Args map[string]string `json:"args,omitempty"` + // KmsKey: Optional. The Cloud KMS key to use for encryption, of the + // form: + // projects/{project_number}/locations/{location_id}/keyRings/{key-ring-n + // ame}/cryptoKeys/{key-name}. + KmsKey string `json:"kmsKey,omitempty"` + // MaxJobExecutionLifetime: Optional. The maximum duration after which // the job execution is expired. MaxJobExecutionLifetime string `json:"maxJobExecutionLifetime,omitempty"` @@ -3485,6 +3491,9 @@ func (s *GoogleCloudDataplexV1TaskInfrastructureSpecBatchComputeResources) Marsh // GoogleCloudDataplexV1TaskInfrastructureSpecContainerImageRuntime: // Container Image Runtime Configuration used with Batch execution. type GoogleCloudDataplexV1TaskInfrastructureSpecContainerImageRuntime struct { + // Image: Optional. Container image to use. + Image string `json:"image,omitempty"` + // JavaJars: Optional. A list of Java JARS to add to the classpath. // Valid input includes Cloud Storage URIs to Jar binaries. For example, // gs://bucket-name/my/path/to/file.jar @@ -3503,7 +3512,7 @@ type GoogleCloudDataplexV1TaskInfrastructureSpecContainerImageRuntime struct { // For example, gs://bucket-name/my/path/to/lib.tar.gz PythonPackages []string `json:"pythonPackages,omitempty"` - // ForceSendFields is a list of field names (e.g. "JavaJars") to + // ForceSendFields is a list of field names (e.g. "Image") 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 @@ -3511,8 +3520,8 @@ type GoogleCloudDataplexV1TaskInfrastructureSpecContainerImageRuntime struct { // This may be used to include empty fields in Patch requests. ForceSendFields []string `json:"-"` - // NullFields is a list of field names (e.g. "JavaJars") to include in - // API requests with the JSON null value. By default, fields with empty + // NullFields is a list of field names (e.g. "Image") 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. @@ -5285,7 +5294,7 @@ func (c *ProjectsLocationsLakesDeleteCall) Do(opts ...googleapi.CallOption) (*Go // ], // "parameters": { // "name": { - // "description": "Required. The resource name of the lake: projects/{project_number}/locations/{location_id}/lakes/{lake_id}", + // "description": "Required. The resource name of the lake: projects/{project_number}/locations/{location_id}/lakes/{lake_id}.", // "location": "path", // "pattern": "^projects/[^/]+/locations/[^/]+/lakes/[^/]+$", // "required": true, @@ -5432,7 +5441,7 @@ func (c *ProjectsLocationsLakesGetCall) Do(opts ...googleapi.CallOption) (*Googl // ], // "parameters": { // "name": { - // "description": "Required. The resource name of the lake: projects/{project_number}/locations/{location_id}/lakes/{lake_id}", + // "description": "Required. The resource name of the lake: projects/{project_number}/locations/{location_id}/lakes/{lake_id}.", // "location": "path", // "pattern": "^projects/[^/]+/locations/[^/]+/lakes/[^/]+$", // "required": true, @@ -6476,7 +6485,7 @@ func (c *ProjectsLocationsLakesActionsListCall) Do(opts ...googleapi.CallOption) // "type": "string" // }, // "parent": { - // "description": "Required. The resource name of the parent lake: projects/{project_number}/locations/{location_id}/lakes/{lake_id}", + // "description": "Required. The resource name of the parent lake: projects/{project_number}/locations/{location_id}/lakes/{lake_id}.", // "location": "path", // "pattern": "^projects/[^/]+/locations/[^/]+/lakes/[^/]+$", // "required": true, @@ -9312,7 +9321,7 @@ func (c *ProjectsLocationsLakesEnvironmentsCreateCall) Do(opts ...googleapi.Call // "type": "string" // }, // "parent": { - // "description": "Required. The resource name of the parent lake: projects/{project_id}/locations/{location_id}/lakes/{lake_id}", + // "description": "Required. The resource name of the parent lake: projects/{project_id}/locations/{location_id}/lakes/{lake_id}.", // "location": "path", // "pattern": "^projects/[^/]+/locations/[^/]+/lakes/[^/]+$", // "required": true, @@ -9353,7 +9362,7 @@ type ProjectsLocationsLakesEnvironmentsDeleteCall struct { // // - name: The resource name of the environment: // projects/{project_id}/locations/{location_id}/lakes/{lake_id}/enviro -// nments/{environment_id}`. +// nments/{environment_id}. func (r *ProjectsLocationsLakesEnvironmentsService) Delete(name string) *ProjectsLocationsLakesEnvironmentsDeleteCall { c := &ProjectsLocationsLakesEnvironmentsDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.name = name @@ -9455,7 +9464,7 @@ func (c *ProjectsLocationsLakesEnvironmentsDeleteCall) Do(opts ...googleapi.Call // ], // "parameters": { // "name": { - // "description": "Required. The resource name of the environment: projects/{project_id}/locations/{location_id}/lakes/{lake_id}/environments/{environment_id}`", + // "description": "Required. The resource name of the environment: projects/{project_id}/locations/{location_id}/lakes/{lake_id}/environments/{environment_id}.", // "location": "path", // "pattern": "^projects/[^/]+/locations/[^/]+/lakes/[^/]+/environments/[^/]+$", // "required": true, @@ -9603,7 +9612,7 @@ func (c *ProjectsLocationsLakesEnvironmentsGetCall) Do(opts ...googleapi.CallOpt // ], // "parameters": { // "name": { - // "description": "Required. The resource name of the environment: projects/{project_id}/locations/{location_id}/lakes/{lake_id}/environments/{environment_id}", + // "description": "Required. The resource name of the environment: projects/{project_id}/locations/{location_id}/lakes/{lake_id}/environments/{environment_id}.", // "location": "path", // "pattern": "^projects/[^/]+/locations/[^/]+/lakes/[^/]+/environments/[^/]+$", // "required": true, @@ -9980,7 +9989,7 @@ func (c *ProjectsLocationsLakesEnvironmentsListCall) Do(opts ...googleapi.CallOp // "type": "string" // }, // "parent": { - // "description": "Required. The resource name of the parent lake: projects/{project_id}/locations/{location_id}/lakes/{lake_id}", + // "description": "Required. The resource name of the parent lake: projects/{project_id}/locations/{location_id}/lakes/{lake_id}.", // "location": "path", // "pattern": "^projects/[^/]+/locations/[^/]+/lakes/[^/]+$", // "required": true, @@ -10667,7 +10676,7 @@ func (c *ProjectsLocationsLakesEnvironmentsSessionsListCall) Do(opts ...googleap // "type": "string" // }, // "parent": { - // "description": "Required. The resource name of the parent environment: projects/{project_number}/locations/{location_id}/lakes/{lake_id}/environment/{environment_id}", + // "description": "Required. The resource name of the parent environment: projects/{project_number}/locations/{location_id}/lakes/{lake_id}/environment/{environment_id}.", // "location": "path", // "pattern": "^projects/[^/]+/locations/[^/]+/lakes/[^/]+/environments/[^/]+$", // "required": true, @@ -10843,7 +10852,7 @@ func (c *ProjectsLocationsLakesTasksCreateCall) Do(opts ...googleapi.CallOption) // ], // "parameters": { // "parent": { - // "description": "Required. The resource name of the parent lake: projects/{project_number}/locations/{location_id}/lakes/{lake_id}", + // "description": "Required. The resource name of the parent lake: projects/{project_number}/locations/{location_id}/lakes/{lake_id}.", // "location": "path", // "pattern": "^projects/[^/]+/locations/[^/]+/lakes/[^/]+$", // "required": true, @@ -10887,8 +10896,8 @@ type ProjectsLocationsLakesTasksDeleteCall struct { // Delete: Delete the task resource. // // - name: The resource name of the task: -// projects/{project_number}/locations/{location_id}/lakes/{lake_id} -// /task/{task_id}`. +// projects/{project_number}/locations/{location_id}/lakes/{lake_id}/ta +// sk/{task_id}. func (r *ProjectsLocationsLakesTasksService) Delete(name string) *ProjectsLocationsLakesTasksDeleteCall { c := &ProjectsLocationsLakesTasksDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.name = name @@ -10990,7 +10999,7 @@ func (c *ProjectsLocationsLakesTasksDeleteCall) Do(opts ...googleapi.CallOption) // ], // "parameters": { // "name": { - // "description": "Required. The resource name of the task: projects/{project_number}/locations/{location_id}/lakes/{lake_id} /task/{task_id}`", + // "description": "Required. The resource name of the task: projects/{project_number}/locations/{location_id}/lakes/{lake_id}/task/{task_id}.", // "location": "path", // "pattern": "^projects/[^/]+/locations/[^/]+/lakes/[^/]+/tasks/[^/]+$", // "required": true, @@ -11022,8 +11031,8 @@ type ProjectsLocationsLakesTasksGetCall struct { // Get: Get task resource. // // - name: The resource name of the task: -// projects/{project_number}/locations/{location_id}/lakes/{lake_id} -// /tasks/{tasks_id}. +// projects/{project_number}/locations/{location_id}/lakes/{lake_id}/ta +// sks/{tasks_id}. func (r *ProjectsLocationsLakesTasksService) Get(name string) *ProjectsLocationsLakesTasksGetCall { c := &ProjectsLocationsLakesTasksGetCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.name = name @@ -11138,7 +11147,7 @@ func (c *ProjectsLocationsLakesTasksGetCall) Do(opts ...googleapi.CallOption) (* // ], // "parameters": { // "name": { - // "description": "Required. The resource name of the task: projects/{project_number}/locations/{location_id}/lakes/{lake_id} /tasks/{tasks_id}", + // "description": "Required. The resource name of the task: projects/{project_number}/locations/{location_id}/lakes/{lake_id}/tasks/{tasks_id}.", // "location": "path", // "pattern": "^projects/[^/]+/locations/[^/]+/lakes/[^/]+/tasks/[^/]+$", // "required": true, @@ -11513,7 +11522,7 @@ func (c *ProjectsLocationsLakesTasksListCall) Do(opts ...googleapi.CallOption) ( // "type": "string" // }, // "parent": { - // "description": "Required. The resource name of the parent lake: projects/{project_number}/locations/{location_id}/lakes/{lake_id}", + // "description": "Required. The resource name of the parent lake: projects/{project_number}/locations/{location_id}/lakes/{lake_id}.", // "location": "path", // "pattern": "^projects/[^/]+/locations/[^/]+/lakes/[^/]+$", // "required": true, @@ -12035,8 +12044,8 @@ type ProjectsLocationsLakesTasksJobsCancelCall struct { // Cancel: Cancel jobs running for the task resource. // // - name: The resource name of the job: -// projects/{project_number}/locations/{location_id}/lakes/{lake_id} -// /task/{task_id}/job/{job_id}`. +// projects/{project_number}/locations/{location_id}/lakes/{lake_id}/ta +// sk/{task_id}/job/{job_id}. func (r *ProjectsLocationsLakesTasksJobsService) Cancel(name string, googleclouddataplexv1canceljobrequest *GoogleCloudDataplexV1CancelJobRequest) *ProjectsLocationsLakesTasksJobsCancelCall { c := &ProjectsLocationsLakesTasksJobsCancelCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.name = name @@ -12144,7 +12153,7 @@ func (c *ProjectsLocationsLakesTasksJobsCancelCall) Do(opts ...googleapi.CallOpt // ], // "parameters": { // "name": { - // "description": "Required. The resource name of the job: projects/{project_number}/locations/{location_id}/lakes/{lake_id} /task/{task_id}/job/{job_id}`", + // "description": "Required. The resource name of the job: projects/{project_number}/locations/{location_id}/lakes/{lake_id}/task/{task_id}/job/{job_id}.", // "location": "path", // "pattern": "^projects/[^/]+/locations/[^/]+/lakes/[^/]+/tasks/[^/]+/jobs/[^/]+$", // "required": true, @@ -12179,8 +12188,8 @@ type ProjectsLocationsLakesTasksJobsGetCall struct { // Get: Get job resource. // // - name: The resource name of the job: -// projects/{project_number}/locations/{location_id}/lakes/{lake_id} -// /tasks/{task_id}/jobs/{job_id}. +// projects/{project_number}/locations/{location_id}/lakes/{lake_id}/ta +// sks/{task_id}/jobs/{job_id}. func (r *ProjectsLocationsLakesTasksJobsService) Get(name string) *ProjectsLocationsLakesTasksJobsGetCall { c := &ProjectsLocationsLakesTasksJobsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.name = name @@ -12295,7 +12304,7 @@ func (c *ProjectsLocationsLakesTasksJobsGetCall) Do(opts ...googleapi.CallOption // ], // "parameters": { // "name": { - // "description": "Required. The resource name of the job: projects/{project_number}/locations/{location_id}/lakes/{lake_id} /tasks/{task_id}/jobs/{job_id}", + // "description": "Required. The resource name of the job: projects/{project_number}/locations/{location_id}/lakes/{lake_id}/tasks/{task_id}/jobs/{job_id}.", // "location": "path", // "pattern": "^projects/[^/]+/locations/[^/]+/lakes/[^/]+/tasks/[^/]+/jobs/[^/]+$", // "required": true, @@ -12473,7 +12482,7 @@ func (c *ProjectsLocationsLakesTasksJobsListCall) Do(opts ...googleapi.CallOptio // "type": "string" // }, // "parent": { - // "description": "Required. The resource name of the parent environment: projects/{project_number}/locations/{location_id}/lakes/{lake_id}/tasks/{task_id}", + // "description": "Required. The resource name of the parent environment: projects/{project_number}/locations/{location_id}/lakes/{lake_id}/tasks/{task_id}.", // "location": "path", // "pattern": "^projects/[^/]+/locations/[^/]+/lakes/[^/]+/tasks/[^/]+$", // "required": true, @@ -12655,7 +12664,7 @@ func (c *ProjectsLocationsLakesZonesCreateCall) Do(opts ...googleapi.CallOption) // ], // "parameters": { // "parent": { - // "description": "Required. The resource name of the parent lake: projects/{project_number}/locations/{location_id}/lakes/{lake_id}", + // "description": "Required. The resource name of the parent lake: projects/{project_number}/locations/{location_id}/lakes/{lake_id}.", // "location": "path", // "pattern": "^projects/[^/]+/locations/[^/]+/lakes/[^/]+$", // "required": true, @@ -12700,8 +12709,8 @@ type ProjectsLocationsLakesZonesDeleteCall struct { // deleted before the zone can be deleted. // // - name: The resource name of the zone: -// projects/{project_number}/locations/{location_id}/lakes/{lake_id} -// /zones/{zone_id}`. +// projects/{project_number}/locations/{location_id}/lakes/{lake_id}/zo +// nes/{zone_id}. func (r *ProjectsLocationsLakesZonesService) Delete(name string) *ProjectsLocationsLakesZonesDeleteCall { c := &ProjectsLocationsLakesZonesDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.name = name @@ -12803,7 +12812,7 @@ func (c *ProjectsLocationsLakesZonesDeleteCall) Do(opts ...googleapi.CallOption) // ], // "parameters": { // "name": { - // "description": "Required. The resource name of the zone: projects/{project_number}/locations/{location_id}/lakes/{lake_id} /zones/{zone_id}`", + // "description": "Required. The resource name of the zone: projects/{project_number}/locations/{location_id}/lakes/{lake_id}/zones/{zone_id}.", // "location": "path", // "pattern": "^projects/[^/]+/locations/[^/]+/lakes/[^/]+/zones/[^/]+$", // "required": true, @@ -12835,8 +12844,8 @@ type ProjectsLocationsLakesZonesGetCall struct { // Get: Retrieves a zone resource. // // - name: The resource name of the zone: -// projects/{project_number}/locations/{location_id}/lakes/{lake_id} -// /zones/{zone_id}. +// projects/{project_number}/locations/{location_id}/lakes/{lake_id}/zo +// nes/{zone_id}. func (r *ProjectsLocationsLakesZonesService) Get(name string) *ProjectsLocationsLakesZonesGetCall { c := &ProjectsLocationsLakesZonesGetCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.name = name @@ -12951,7 +12960,7 @@ func (c *ProjectsLocationsLakesZonesGetCall) Do(opts ...googleapi.CallOption) (* // ], // "parameters": { // "name": { - // "description": "Required. The resource name of the zone: projects/{project_number}/locations/{location_id}/lakes/{lake_id} /zones/{zone_id}", + // "description": "Required. The resource name of the zone: projects/{project_number}/locations/{location_id}/lakes/{lake_id}/zones/{zone_id}.", // "location": "path", // "pattern": "^projects/[^/]+/locations/[^/]+/lakes/[^/]+/zones/[^/]+$", // "required": true, @@ -13326,7 +13335,7 @@ func (c *ProjectsLocationsLakesZonesListCall) Do(opts ...googleapi.CallOption) ( // "type": "string" // }, // "parent": { - // "description": "Required. The resource name of the parent lake: projects/{project_number}/locations/{location_id}/lakes/{lake_id}", + // "description": "Required. The resource name of the parent lake: projects/{project_number}/locations/{location_id}/lakes/{lake_id}.", // "location": "path", // "pattern": "^projects/[^/]+/locations/[^/]+/lakes/[^/]+$", // "required": true, @@ -13996,7 +14005,7 @@ func (c *ProjectsLocationsLakesZonesActionsListCall) Do(opts ...googleapi.CallOp // "type": "string" // }, // "parent": { - // "description": "Required. The resource name of the parent zone: projects/{project_number}/locations/{location_id}/lakes/{lake_id}/zones/{zone_id}", + // "description": "Required. The resource name of the parent zone: projects/{project_number}/locations/{location_id}/lakes/{lake_id}/zones/{zone_id}.", // "location": "path", // "pattern": "^projects/[^/]+/locations/[^/]+/lakes/[^/]+/zones/[^/]+$", // "required": true, @@ -14049,8 +14058,8 @@ type ProjectsLocationsLakesZonesAssetsCreateCall struct { // Create: Creates an asset resource. // // - parent: The resource name of the parent zone: -// projects/{project_number}/locations/{location_id}/lakes/{lake_id} -// /zones/{zone_id}`. +// projects/{project_number}/locations/{location_id}/lakes/{lake_id}/zo +// nes/{zone_id}. func (r *ProjectsLocationsLakesZonesAssetsService) Create(parent string, googleclouddataplexv1asset *GoogleCloudDataplexV1Asset) *ProjectsLocationsLakesZonesAssetsCreateCall { c := &ProjectsLocationsLakesZonesAssetsCreateCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.parent = parent @@ -14182,7 +14191,7 @@ func (c *ProjectsLocationsLakesZonesAssetsCreateCall) Do(opts ...googleapi.CallO // "type": "string" // }, // "parent": { - // "description": "Required. The resource name of the parent zone: projects/{project_number}/locations/{location_id}/lakes/{lake_id} /zones/{zone_id}`", + // "description": "Required. The resource name of the parent zone: projects/{project_number}/locations/{location_id}/lakes/{lake_id}/zones/{zone_id}.", // "location": "path", // "pattern": "^projects/[^/]+/locations/[^/]+/lakes/[^/]+/zones/[^/]+$", // "required": true, @@ -14223,8 +14232,8 @@ type ProjectsLocationsLakesZonesAssetsDeleteCall struct { // policy. // // - name: The resource name of the asset: -// projects/{project_number}/locations/{location_id}/lakes/{lake_id} -// /zones/{zone_id}/assets/{asset_id}. +// projects/{project_number}/locations/{location_id}/lakes/{lake_id}/zo +// nes/{zone_id}/assets/{asset_id}. func (r *ProjectsLocationsLakesZonesAssetsService) Delete(name string) *ProjectsLocationsLakesZonesAssetsDeleteCall { c := &ProjectsLocationsLakesZonesAssetsDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.name = name @@ -14326,7 +14335,7 @@ func (c *ProjectsLocationsLakesZonesAssetsDeleteCall) Do(opts ...googleapi.CallO // ], // "parameters": { // "name": { - // "description": "Required. The resource name of the asset: projects/{project_number}/locations/{location_id}/lakes/{lake_id} /zones/{zone_id}/assets/{asset_id}", + // "description": "Required. The resource name of the asset: projects/{project_number}/locations/{location_id}/lakes/{lake_id}/zones/{zone_id}/assets/{asset_id}.", // "location": "path", // "pattern": "^projects/[^/]+/locations/[^/]+/lakes/[^/]+/zones/[^/]+/assets/[^/]+$", // "required": true, @@ -14358,8 +14367,8 @@ type ProjectsLocationsLakesZonesAssetsGetCall struct { // Get: Retrieves an asset resource. // // - name: The resource name of the asset: -// projects/{project_number}/locations/{location_id}/lakes/{lake_id} -// /zones/{zone_id}/assets/{asset_id}. +// projects/{project_number}/locations/{location_id}/lakes/{lake_id}/zo +// nes/{zone_id}/assets/{asset_id}. func (r *ProjectsLocationsLakesZonesAssetsService) Get(name string) *ProjectsLocationsLakesZonesAssetsGetCall { c := &ProjectsLocationsLakesZonesAssetsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.name = name @@ -14474,7 +14483,7 @@ func (c *ProjectsLocationsLakesZonesAssetsGetCall) Do(opts ...googleapi.CallOpti // ], // "parameters": { // "name": { - // "description": "Required. The resource name of the asset: projects/{project_number}/locations/{location_id}/lakes/{lake_id} /zones/{zone_id}/assets/{asset_id}", + // "description": "Required. The resource name of the asset: projects/{project_number}/locations/{location_id}/lakes/{lake_id}/zones/{zone_id}/assets/{asset_id}.", // "location": "path", // "pattern": "^projects/[^/]+/locations/[^/]+/lakes/[^/]+/zones/[^/]+/assets/[^/]+$", // "required": true, @@ -14681,8 +14690,8 @@ type ProjectsLocationsLakesZonesAssetsListCall struct { // List: Lists asset resources in a zone. // // - parent: The resource name of the parent zone: -// projects/{project_number}/locations/{location_id}/lakes/{lake_id} -// /zones/{zone_id}`. +// projects/{project_number}/locations/{location_id}/lakes/{lake_id}/zo +// nes/{zone_id}. func (r *ProjectsLocationsLakesZonesAssetsService) List(parent string) *ProjectsLocationsLakesZonesAssetsListCall { c := &ProjectsLocationsLakesZonesAssetsListCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.parent = parent @@ -14850,7 +14859,7 @@ func (c *ProjectsLocationsLakesZonesAssetsListCall) Do(opts ...googleapi.CallOpt // "type": "string" // }, // "parent": { - // "description": "Required. The resource name of the parent zone: projects/{project_number}/locations/{location_id}/lakes/{lake_id} /zones/{zone_id}`", + // "description": "Required. The resource name of the parent zone: projects/{project_number}/locations/{location_id}/lakes/{lake_id}/zones/{zone_id}.", // "location": "path", // "pattern": "^projects/[^/]+/locations/[^/]+/lakes/[^/]+/zones/[^/]+$", // "required": true, @@ -15520,7 +15529,7 @@ func (c *ProjectsLocationsLakesZonesAssetsActionsListCall) Do(opts ...googleapi. // "type": "string" // }, // "parent": { - // "description": "Required. The resource name of the parent asset: projects/{project_number}/locations/{location_id}/lakes/{lake_id}/zones/{zone_id}/assets/{asset_id}", + // "description": "Required. The resource name of the parent asset: projects/{project_number}/locations/{location_id}/lakes/{lake_id}/zones/{zone_id}/assets/{asset_id}.", // "location": "path", // "pattern": "^projects/[^/]+/locations/[^/]+/lakes/[^/]+/zones/[^/]+/assets/[^/]+$", // "required": true, diff --git a/documentai/v1/documentai-api.json b/documentai/v1/documentai-api.json index fb4d7d234ad..e4b55ecdd7c 100644 --- a/documentai/v1/documentai-api.json +++ b/documentai/v1/documentai-api.json @@ -1069,7 +1069,7 @@ } } }, - "revision": "20220711", + "revision": "20220713", "rootUrl": "https://documentai.googleapis.com/", "schemas": { "GoogleCloudDocumentaiUiv1beta3BatchDeleteDocumentsMetadata": { @@ -1748,7 +1748,7 @@ }, "status": { "$ref": "GoogleRpcStatus", - "description": "The status of the processing of the document." + "description": "The error encountered while attempting to process the document. Empty if there are no errors." } }, "type": "object" @@ -6298,7 +6298,7 @@ }, "status": { "$ref": "GoogleRpcStatus", - "description": "The status of the processing of the document." + "description": "The error encountered while attempting to process the document. Empty if there are no errors." } }, "type": "object" diff --git a/documentai/v1/documentai-gen.go b/documentai/v1/documentai-gen.go index a1d29f00d4a..06284aa3945 100644 --- a/documentai/v1/documentai-gen.go +++ b/documentai/v1/documentai-gen.go @@ -1570,7 +1570,8 @@ type GoogleCloudDocumentaiV1BatchProcessMetadataIndividualProcessStatus struct { // successful, otherwise empty. OutputGcsDestination string `json:"outputGcsDestination,omitempty"` - // Status: The status of the processing of the document. + // Status: The error encountered while attempting to process the + // document. Empty if there are no errors. Status *GoogleRpcStatus `json:"status,omitempty"` // ForceSendFields is a list of field names (e.g. "HumanReviewStatus") @@ -9009,7 +9010,8 @@ type GoogleCloudDocumentaiV1beta3BatchProcessMetadataIndividualProcessStatus str // successful, otherwise empty. OutputGcsDestination string `json:"outputGcsDestination,omitempty"` - // Status: The status of the processing of the document. + // Status: The error encountered while attempting to process the + // document. Empty if there are no errors. Status *GoogleRpcStatus `json:"status,omitempty"` // ForceSendFields is a list of field names (e.g. diff --git a/documentai/v1beta2/documentai-api.json b/documentai/v1beta2/documentai-api.json index da82b627b25..471ca0ba2ad 100644 --- a/documentai/v1beta2/documentai-api.json +++ b/documentai/v1beta2/documentai-api.json @@ -292,7 +292,7 @@ } } }, - "revision": "20220711", + "revision": "20220713", "rootUrl": "https://documentai.googleapis.com/", "schemas": { "GoogleCloudDocumentaiUiv1beta3BatchDeleteDocumentsMetadata": { @@ -937,7 +937,7 @@ }, "status": { "$ref": "GoogleRpcStatus", - "description": "The status of the processing of the document." + "description": "The error encountered while attempting to process the document. Empty if there are no errors." } }, "type": "object" @@ -3981,7 +3981,7 @@ }, "status": { "$ref": "GoogleRpcStatus", - "description": "The status of the processing of the document." + "description": "The error encountered while attempting to process the document. Empty if there are no errors." } }, "type": "object" diff --git a/documentai/v1beta2/documentai-gen.go b/documentai/v1beta2/documentai-gen.go index 11a45e9b970..57d93f868ca 100644 --- a/documentai/v1beta2/documentai-gen.go +++ b/documentai/v1beta2/documentai-gen.go @@ -1406,7 +1406,8 @@ type GoogleCloudDocumentaiV1BatchProcessMetadataIndividualProcessStatus struct { // successful, otherwise empty. OutputGcsDestination string `json:"outputGcsDestination,omitempty"` - // Status: The status of the processing of the document. + // Status: The error encountered while attempting to process the + // document. Empty if there are no errors. Status *GoogleRpcStatus `json:"status,omitempty"` // ForceSendFields is a list of field names (e.g. "HumanReviewStatus") @@ -6434,7 +6435,8 @@ type GoogleCloudDocumentaiV1beta3BatchProcessMetadataIndividualProcessStatus str // successful, otherwise empty. OutputGcsDestination string `json:"outputGcsDestination,omitempty"` - // Status: The status of the processing of the document. + // Status: The error encountered while attempting to process the + // document. Empty if there are no errors. Status *GoogleRpcStatus `json:"status,omitempty"` // ForceSendFields is a list of field names (e.g. diff --git a/documentai/v1beta3/documentai-api.json b/documentai/v1beta3/documentai-api.json index 2c846a664b2..2ad029e2998 100644 --- a/documentai/v1beta3/documentai-api.json +++ b/documentai/v1beta3/documentai-api.json @@ -836,7 +836,7 @@ } } }, - "revision": "20220711", + "revision": "20220713", "rootUrl": "https://documentai.googleapis.com/", "schemas": { "GoogleCloudDocumentaiUiv1beta3BatchDeleteDocumentsMetadata": { @@ -1481,7 +1481,7 @@ }, "status": { "$ref": "GoogleRpcStatus", - "description": "The status of the processing of the document." + "description": "The error encountered while attempting to process the document. Empty if there are no errors." } }, "type": "object" @@ -4377,7 +4377,7 @@ }, "status": { "$ref": "GoogleRpcStatus", - "description": "The status of the processing of the document." + "description": "The error encountered while attempting to process the document. Empty if there are no errors." } }, "type": "object" diff --git a/documentai/v1beta3/documentai-gen.go b/documentai/v1beta3/documentai-gen.go index e82254b2d1d..bc8f8ad4038 100644 --- a/documentai/v1beta3/documentai-gen.go +++ b/documentai/v1beta3/documentai-gen.go @@ -1418,7 +1418,8 @@ type GoogleCloudDocumentaiV1BatchProcessMetadataIndividualProcessStatus struct { // successful, otherwise empty. OutputGcsDestination string `json:"outputGcsDestination,omitempty"` - // Status: The status of the processing of the document. + // Status: The error encountered while attempting to process the + // document. Empty if there are no errors. Status *GoogleRpcStatus `json:"status,omitempty"` // ForceSendFields is a list of field names (e.g. "HumanReviewStatus") @@ -6175,7 +6176,8 @@ type GoogleCloudDocumentaiV1beta3BatchProcessMetadataIndividualProcessStatus str // successful, otherwise empty. OutputGcsDestination string `json:"outputGcsDestination,omitempty"` - // Status: The status of the processing of the document. + // Status: The error encountered while attempting to process the + // document. Empty if there are no errors. Status *GoogleRpcStatus `json:"status,omitempty"` // ForceSendFields is a list of field names (e.g. diff --git a/domains/v1alpha2/domains-api.json b/domains/v1alpha2/domains-api.json index c801e50c474..424f5cafe9a 100644 --- a/domains/v1alpha2/domains-api.json +++ b/domains/v1alpha2/domains-api.json @@ -843,7 +843,7 @@ } } }, - "revision": "20220616", + "revision": "20220712", "rootUrl": "https://domains.googleapis.com/", "schemas": { "AuditConfig": { @@ -1566,7 +1566,7 @@ "type": "object" }, "PostalAddress": { - "description": "Represents a postal address, e.g. for postal delivery or payments addresses. Given a postal address, a postal service can deliver items to a premise, P.O. Box or similar. It is not intended to model geographical locations (roads, towns, mountains). In typical usage an address would be created via user input or from importing existing data, depending on the type of process. Advice on address input / editing: - Use an i18n-ready address widget such as https://github.com/google/libaddressinput) - Users should not be presented with UI elements for input or editing of fields outside countries where that field is used. For more guidance on how to use this schema, please see: https://support.google.com/business/answer/6397478", + "description": "Represents a postal address, e.g. for postal delivery or payments addresses. Given a postal address, a postal service can deliver items to a premise, P.O. Box or similar. It is not intended to model geographical locations (roads, towns, mountains). In typical usage an address would be created via user input or from importing existing data, depending on the type of process. Advice on address input / editing: - Use an internationalization-ready address widget such as https://github.com/google/libaddressinput) - Users should not be presented with UI elements for input or editing of fields outside countries where that field is used. For more guidance on how to use this schema, please see: https://support.google.com/business/answer/6397478", "id": "PostalAddress", "properties": { "addressLines": { diff --git a/domains/v1alpha2/domains-gen.go b/domains/v1alpha2/domains-gen.go index 5c68ce96f4b..1ae5d5a4fa9 100644 --- a/domains/v1alpha2/domains-gen.go +++ b/domains/v1alpha2/domains-gen.go @@ -1487,9 +1487,9 @@ func (s *Policy) MarshalJSON() ([]byte, error) { // to model geographical locations (roads, towns, mountains). In typical // usage an address would be created via user input or from importing // existing data, depending on the type of process. Advice on address -// input / editing: - Use an i18n-ready address widget such as -// https://github.com/google/libaddressinput) - Users should not be -// presented with UI elements for input or editing of fields outside +// input / editing: - Use an internationalization-ready address widget +// such as https://github.com/google/libaddressinput) - Users should not +// be presented with UI elements for input or editing of fields outside // countries where that field is used. For more guidance on how to use // this schema, please see: // https://support.google.com/business/answer/6397478 diff --git a/securitycenter/v1/securitycenter-api.json b/securitycenter/v1/securitycenter-api.json index 373397bfc03..bae903ffdd3 100644 --- a/securitycenter/v1/securitycenter-api.json +++ b/securitycenter/v1/securitycenter-api.json @@ -3058,7 +3058,7 @@ } } }, - "revision": "20220707", + "revision": "20220713", "rootUrl": "https://securitycenter.googleapis.com/", "schemas": { "Access": { @@ -3092,6 +3092,41 @@ }, "type": "object" }, + "AccessReview": { + "description": "Conveys information about a Kubernetes access review (e.g. kubectl auth can-i ...) that was involved in a finding.", + "id": "AccessReview", + "properties": { + "group": { + "description": "Group is the API Group of the Resource. \"*\" means all.", + "type": "string" + }, + "name": { + "description": "Name is the name of the resource being requested. Empty means all.", + "type": "string" + }, + "ns": { + "description": "Namespace of the action being requested. Currently, there is no distinction between no namespace and all namespaces. Both are represented by \"\" (empty).", + "type": "string" + }, + "resource": { + "description": "Resource is the optional resource type requested. \"*\" means all.", + "type": "string" + }, + "subresource": { + "description": "Subresource is the optional subresource type.", + "type": "string" + }, + "verb": { + "description": "Verb is a Kubernetes resource API verb, like: get, list, watch, create, update, delete, proxy. \"*\" means all.", + "type": "string" + }, + "version": { + "description": "Version is the API Version of the Resource. \"*\" means all.", + "type": "string" + } + }, + "type": "object" + }, "Asset": { "description": "Security Command Center representation of a Google Cloud resource. The Asset is a Security Command Center resource that captures information about a single Google Cloud resource. All modifications to an Asset are only within the context of Security Command Center and don't affect the referenced Google Cloud resource.", "id": "Asset", @@ -3348,6 +3383,32 @@ }, "type": "object" }, + "Container": { + "description": "Container associated with the finding.", + "id": "Container", + "properties": { + "imageId": { + "description": "Optional container image id, when provided by the container runtime. Uniquely identifies the container image launched using a container image digest.", + "type": "string" + }, + "labels": { + "description": "Container labels, as provided by the container runtime.", + "items": { + "$ref": "Label" + }, + "type": "array" + }, + "name": { + "description": "Container name.", + "type": "string" + }, + "uri": { + "description": "Container image URI provided when configuring a pod/container. May identify a container image version using mutable tags.", + "type": "string" + } + }, + "type": "object" + }, "Cve": { "description": "CVE stands for Common Vulnerabilities and Exposures. More information: https://cve.mitre.org", "id": "Cve", @@ -3676,10 +3737,17 @@ "additionalProperties": { "$ref": "ContactDetails" }, - "description": "Output only. Map containing the point of contacts for the given finding. The key represents the type of contact, while the value contains a list of all the contacts that pertain. Please refer to: https://cloud.google.com/resource-manager/docs/managing-notification-contacts#notification-categories { \"security\":[ { \"contact\":{ \"email\":\"person1@company.com\" } }, { \"contact\":{ \"email\":“person2@company.com” } } ] }", + "description": "Output only. Map containing the point of contacts for the given finding. The key represents the type of contact, while the value contains a list of all the contacts that pertain. Please refer to: https://cloud.google.com/resource-manager/docs/managing-notification-contacts#notification-categories { \"security\": { \"contacts\": [ { \"email\": \"person1@company.com\" }, { \"email\": \"person2@company.com\" } ] }", "readOnly": true, "type": "object" }, + "containers": { + "description": "Containers associated with the finding. containers provides information for both Kubernetes and non-Kubernetes containers.", + "items": { + "$ref": "Container" + }, + "type": "array" + }, "createTime": { "description": "The time at which the finding was created in Security Command Center.", "format": "google-datetime", @@ -3741,6 +3809,10 @@ "$ref": "Indicator", "description": "Represents what's commonly known as an Indicator of compromise (IoC) in computer forensics. This is an artifact observed on a network or in an operating system that, with high confidence, indicates a computer intrusion. Reference: https://en.wikipedia.org/wiki/Indicator_of_compromise" }, + "kubernetes": { + "$ref": "Kubernetes", + "description": "Kubernetes resources associated with the finding." + }, "mitreAttack": { "$ref": "MitreAttack", "description": "MITRE ATT\u0026CK tactics and techniques related to this finding. See: https://attack.mitre.org" @@ -3939,6 +4011,32 @@ }, "type": "object" }, + "GoogleCloudSecuritycenterV1Binding": { + "description": "Represents a Kubernetes RoleBinding or ClusterRoleBinding.", + "id": "GoogleCloudSecuritycenterV1Binding", + "properties": { + "name": { + "description": "Name for binding.", + "type": "string" + }, + "ns": { + "description": "Namespace for binding.", + "type": "string" + }, + "role": { + "$ref": "Role", + "description": "The Role or ClusterRole referenced by the binding." + }, + "subjects": { + "description": "Represents the subjects(s) bound to the role. Not always available for PATCH requests.", + "items": { + "$ref": "Subject" + }, + "type": "array" + } + }, + "type": "object" + }, "GoogleCloudSecuritycenterV1BulkMuteFindingsResponse": { "description": "The response to a BulkMute request. Contains the LRO information.", "id": "GoogleCloudSecuritycenterV1BulkMuteFindingsResponse", @@ -4549,6 +4647,70 @@ }, "type": "object" }, + "Kubernetes": { + "description": "Kubernetes related attributes.", + "id": "Kubernetes", + "properties": { + "accessReviews": { + "description": "Provides information on any Kubernetes access reviews (i.e. privilege checks) relevant to the finding.", + "items": { + "$ref": "AccessReview" + }, + "type": "array" + }, + "bindings": { + "description": "Provides Kubernetes role binding information for findings that involve RoleBindings or ClusterRoleBindings.", + "items": { + "$ref": "GoogleCloudSecuritycenterV1Binding" + }, + "type": "array" + }, + "nodePools": { + "description": "GKE Node Pools associated with the finding. This field will contain NodePool information for each Node, when it is available.", + "items": { + "$ref": "NodePool" + }, + "type": "array" + }, + "nodes": { + "description": "Provides Kubernetes Node information.", + "items": { + "$ref": "Node" + }, + "type": "array" + }, + "pods": { + "description": "Kubernetes Pods associated with the finding. This field will contain Pod records for each container that is owned by a Pod.", + "items": { + "$ref": "Pod" + }, + "type": "array" + }, + "roles": { + "description": "Provides Kubernetes role information for findings that involve Roles or ClusterRoles.", + "items": { + "$ref": "Role" + }, + "type": "array" + } + }, + "type": "object" + }, + "Label": { + "description": "Label represents a generic name=value label. Label has separate name and value fields to support filtering with contains().", + "id": "Label", + "properties": { + "name": { + "description": "Label name.", + "type": "string" + }, + "value": { + "description": "Label value.", + "type": "string" + } + }, + "type": "object" + }, "ListAssetsResponse": { "description": "Response message for listing assets.", "id": "ListAssetsResponse", @@ -4854,7 +5016,8 @@ "MODIFY_AUTHENTICATION_PROCESS", "DATA_DESTRUCTION", "DOMAIN_POLICY_MODIFICATION", - "IMPAIR_DEFENSES" + "IMPAIR_DEFENSES", + "NETWORK_SERVICE_DISCOVERY" ], "enumDescriptions": [ "Unspecified value.", @@ -4888,7 +5051,8 @@ "T1556", "T1485", "T1484", - "T1562" + "T1562", + "T1046" ], "type": "string" }, @@ -4967,7 +5131,8 @@ "MODIFY_AUTHENTICATION_PROCESS", "DATA_DESTRUCTION", "DOMAIN_POLICY_MODIFICATION", - "IMPAIR_DEFENSES" + "IMPAIR_DEFENSES", + "NETWORK_SERVICE_DISCOVERY" ], "enumDescriptions": [ "Unspecified value.", @@ -5001,7 +5166,8 @@ "T1556", "T1485", "T1484", - "T1562" + "T1562", + "T1046" ], "type": "string" }, @@ -5014,6 +5180,35 @@ }, "type": "object" }, + "Node": { + "description": "Kubernetes Nodes associated with the finding.", + "id": "Node", + "properties": { + "name": { + "description": "Full Resource name of the Compute Engine VM running the cluster node.", + "type": "string" + } + }, + "type": "object" + }, + "NodePool": { + "description": "Provides GKE Node Pool information.", + "id": "NodePool", + "properties": { + "name": { + "description": "Kubernetes Node pool name.", + "type": "string" + }, + "nodes": { + "description": "Nodes associated with the finding.", + "items": { + "$ref": "Node" + }, + "type": "array" + } + }, + "type": "object" + }, "NotificationConfig": { "description": "Cloud Security Command Center (Cloud SCC) notification configs. A notification config is a Cloud SCC resource that contains the configuration to send notifications for create/update events of findings, assets and etc.", "id": "NotificationConfig", @@ -5096,6 +5291,35 @@ }, "type": "object" }, + "Pod": { + "description": "Kubernetes Pod.", + "id": "Pod", + "properties": { + "containers": { + "description": "Pod containers associated with this finding, if any.", + "items": { + "$ref": "Container" + }, + "type": "array" + }, + "labels": { + "description": "Pod labels. For Kubernetes containers, these are applied to the container.", + "items": { + "$ref": "Label" + }, + "type": "array" + }, + "name": { + "description": "Kubernetes Pod name.", + "type": "string" + }, + "ns": { + "description": "Kubernetes Pod namespace.", + "type": "string" + } + }, + "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/).", "id": "Policy", @@ -5257,6 +5481,35 @@ }, "type": "object" }, + "Role": { + "description": "Kubernetes Role or ClusterRole.", + "id": "Role", + "properties": { + "kind": { + "description": "Role type.", + "enum": [ + "KIND_UNSPECIFIED", + "ROLE", + "CLUSTER_ROLE" + ], + "enumDescriptions": [ + "Role type is not specified.", + "Kubernetes Role.", + "Kubernetes ClusterRole." + ], + "type": "string" + }, + "name": { + "description": "Role name.", + "type": "string" + }, + "ns": { + "description": "Role namespace.", + "type": "string" + } + }, + "type": "object" + }, "RunAssetDiscoveryRequest": { "description": "Request message for running asset discovery for an organization.", "id": "RunAssetDiscoveryRequest", @@ -5460,6 +5713,37 @@ }, "type": "object" }, + "Subject": { + "description": "Represents a Kubernetes Subject.", + "id": "Subject", + "properties": { + "kind": { + "description": "Authentication type for subject.", + "enum": [ + "AUTH_TYPE_UNSPECIFIED", + "USER", + "SERVICEACCOUNT", + "GROUP" + ], + "enumDescriptions": [ + "Authentication is not specified.", + "User with valid certificate.", + "Users managed by Kubernetes API with credentials stored as Secrets.", + "Collection of users." + ], + "type": "string" + }, + "name": { + "description": "Name for subject.", + "type": "string" + }, + "ns": { + "description": "Namespace for subject.", + "type": "string" + } + }, + "type": "object" + }, "TestIamPermissionsRequest": { "description": "Request message for `TestIamPermissions` method.", "id": "TestIamPermissionsRequest", diff --git a/securitycenter/v1/securitycenter-gen.go b/securitycenter/v1/securitycenter-gen.go index 66f215bc8be..3bc08f91558 100644 --- a/securitycenter/v1/securitycenter-gen.go +++ b/securitycenter/v1/securitycenter-gen.go @@ -493,6 +493,58 @@ func (s *Access) MarshalJSON() ([]byte, error) { return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) } +// AccessReview: Conveys information about a Kubernetes access review +// (e.g. kubectl auth can-i ...) that was involved in a finding. +type AccessReview struct { + // Group: Group is the API Group of the Resource. "*" means all. + Group string `json:"group,omitempty"` + + // Name: Name is the name of the resource being requested. Empty means + // all. + Name string `json:"name,omitempty"` + + // Ns: Namespace of the action being requested. Currently, there is no + // distinction between no namespace and all namespaces. Both are + // represented by "" (empty). + Ns string `json:"ns,omitempty"` + + // Resource: Resource is the optional resource type requested. "*" means + // all. + Resource string `json:"resource,omitempty"` + + // Subresource: Subresource is the optional subresource type. + Subresource string `json:"subresource,omitempty"` + + // Verb: Verb is a Kubernetes resource API verb, like: get, list, watch, + // create, update, delete, proxy. "*" means all. + Verb string `json:"verb,omitempty"` + + // Version: Version is the API Version of the Resource. "*" means all. + Version string `json:"version,omitempty"` + + // ForceSendFields is a list of field names (e.g. "Group") 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. "Group") 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 *AccessReview) MarshalJSON() ([]byte, error) { + type NoMethod AccessReview + raw := NoMethod(*s) + return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) +} + // Asset: Security Command Center representation of a Google Cloud // resource. The Asset is a Security Command Center resource that // captures information about a single Google Cloud resource. All @@ -966,6 +1018,46 @@ func (s *ContactDetails) MarshalJSON() ([]byte, error) { return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) } +// Container: Container associated with the finding. +type Container struct { + // ImageId: Optional container image id, when provided by the container + // runtime. Uniquely identifies the container image launched using a + // container image digest. + ImageId string `json:"imageId,omitempty"` + + // Labels: Container labels, as provided by the container runtime. + Labels []*Label `json:"labels,omitempty"` + + // Name: Container name. + Name string `json:"name,omitempty"` + + // Uri: Container image URI provided when configuring a pod/container. + // May identify a container image version using mutable tags. + Uri string `json:"uri,omitempty"` + + // ForceSendFields is a list of field names (e.g. "ImageId") 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. "ImageId") 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 *Container) MarshalJSON() ([]byte, error) { + type NoMethod Container + raw := NoMethod(*s) + return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) +} + // Cve: CVE stands for Common Vulnerabilities and Exposures. More // information: https://cve.mitre.org type Cve struct { @@ -1475,10 +1567,15 @@ type Finding struct { // value contains a list of all the contacts that pertain. Please refer // to: // https://cloud.google.com/resource-manager/docs/managing-notification-contacts#notification-categories - // { "security":[ { "contact":{ "email":"person1@company.com" } }, { - // "contact":{ "email":“person2@company.com” } } ] } + // { "security": { "contacts": [ { "email": "person1@company.com" }, { + // "email": "person2@company.com" } ] } Contacts map[string]ContactDetails `json:"contacts,omitempty"` + // Containers: Containers associated with the finding. containers + // provides information for both Kubernetes and non-Kubernetes + // containers. + Containers []*Container `json:"containers,omitempty"` + // CreateTime: The time at which the finding was created in Security // Command Center. CreateTime string `json:"createTime,omitempty"` @@ -1534,6 +1631,9 @@ type Finding struct { // https://en.wikipedia.org/wiki/Indicator_of_compromise Indicator *Indicator `json:"indicator,omitempty"` + // Kubernetes: Kubernetes resources associated with the finding. + Kubernetes *Kubernetes `json:"kubernetes,omitempty"` + // MitreAttack: MITRE ATT&CK tactics and techniques related to this // finding. See: https://attack.mitre.org MitreAttack *MitreAttack `json:"mitreAttack,omitempty"` @@ -1899,6 +1999,45 @@ func (s *GoogleCloudSecuritycenterV1BigQueryExport) MarshalJSON() ([]byte, error return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) } +// GoogleCloudSecuritycenterV1Binding: Represents a Kubernetes +// RoleBinding or ClusterRoleBinding. +type GoogleCloudSecuritycenterV1Binding struct { + // Name: Name for binding. + Name string `json:"name,omitempty"` + + // Ns: Namespace for binding. + Ns string `json:"ns,omitempty"` + + // Role: The Role or ClusterRole referenced by the binding. + Role *Role `json:"role,omitempty"` + + // Subjects: Represents the subjects(s) bound to the role. Not always + // available for PATCH requests. + Subjects []*Subject `json:"subjects,omitempty"` + + // ForceSendFields is a list of field names (e.g. "Name") 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. "Name") 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 *GoogleCloudSecuritycenterV1Binding) MarshalJSON() ([]byte, error) { + type NoMethod GoogleCloudSecuritycenterV1Binding + raw := NoMethod(*s) + return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) +} + // GoogleCloudSecuritycenterV1BulkMuteFindingsResponse: The response to // a BulkMute request. Contains the LRO information. type GoogleCloudSecuritycenterV1BulkMuteFindingsResponse struct { @@ -2992,6 +3131,87 @@ func (s *Indicator) MarshalJSON() ([]byte, error) { return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) } +// Kubernetes: Kubernetes related attributes. +type Kubernetes struct { + // AccessReviews: Provides information on any Kubernetes access reviews + // (i.e. privilege checks) relevant to the finding. + AccessReviews []*AccessReview `json:"accessReviews,omitempty"` + + // Bindings: Provides Kubernetes role binding information for findings + // that involve RoleBindings or ClusterRoleBindings. + Bindings []*GoogleCloudSecuritycenterV1Binding `json:"bindings,omitempty"` + + // NodePools: GKE Node Pools associated with the finding. This field + // will contain NodePool information for each Node, when it is + // available. + NodePools []*NodePool `json:"nodePools,omitempty"` + + // Nodes: Provides Kubernetes Node information. + Nodes []*Node `json:"nodes,omitempty"` + + // Pods: Kubernetes Pods associated with the finding. This field will + // contain Pod records for each container that is owned by a Pod. + Pods []*Pod `json:"pods,omitempty"` + + // Roles: Provides Kubernetes role information for findings that involve + // Roles or ClusterRoles. + Roles []*Role `json:"roles,omitempty"` + + // ForceSendFields is a list of field names (e.g. "AccessReviews") 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. "AccessReviews") 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 *Kubernetes) MarshalJSON() ([]byte, error) { + type NoMethod Kubernetes + raw := NoMethod(*s) + return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) +} + +// Label: Label represents a generic name=value label. Label has +// separate name and value fields to support filtering with contains(). +type Label struct { + // Name: Label name. + Name string `json:"name,omitempty"` + + // Value: Label value. + Value string `json:"value,omitempty"` + + // ForceSendFields is a list of field names (e.g. "Name") 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. "Name") 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 *Label) MarshalJSON() ([]byte, error) { + type NoMethod Label + raw := NoMethod(*s) + return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) +} + // ListAssetsResponse: Response message for listing assets. type ListAssetsResponse struct { // ListAssetsResults: Assets matching the list request. @@ -3442,6 +3662,7 @@ type MitreAttack struct { // "DATA_DESTRUCTION" - T1485 // "DOMAIN_POLICY_MODIFICATION" - T1484 // "IMPAIR_DEFENSES" - T1562 + // "NETWORK_SERVICE_DISCOVERY" - T1046 AdditionalTechniques []string `json:"additionalTechniques,omitempty"` // PrimaryTactic: The MITRE ATT&CK tactic most closely represented by @@ -3506,6 +3727,7 @@ type MitreAttack struct { // "DATA_DESTRUCTION" - T1485 // "DOMAIN_POLICY_MODIFICATION" - T1484 // "IMPAIR_DEFENSES" - T1562 + // "NETWORK_SERVICE_DISCOVERY" - T1046 PrimaryTechniques []string `json:"primaryTechniques,omitempty"` // Version: The MITRE ATT&CK version referenced by the above fields. @@ -3536,6 +3758,66 @@ func (s *MitreAttack) MarshalJSON() ([]byte, error) { return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) } +// Node: Kubernetes Nodes associated with the finding. +type Node struct { + // Name: Full Resource name of the Compute Engine VM running the cluster + // node. + Name string `json:"name,omitempty"` + + // ForceSendFields is a list of field names (e.g. "Name") 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. "Name") to include in API + // requests with the JSON null value. By default, fields with empty + // values are omitted from API requests. However, any field with an + // empty value appearing in NullFields will be sent to the server as + // null. It is an error if a field in this list has a non-empty value. + // This may be used to include null fields in Patch requests. + NullFields []string `json:"-"` +} + +func (s *Node) MarshalJSON() ([]byte, error) { + type NoMethod Node + raw := NoMethod(*s) + return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) +} + +// NodePool: Provides GKE Node Pool information. +type NodePool struct { + // Name: Kubernetes Node pool name. + Name string `json:"name,omitempty"` + + // Nodes: Nodes associated with the finding. + Nodes []*Node `json:"nodes,omitempty"` + + // ForceSendFields is a list of field names (e.g. "Name") 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. "Name") 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 *NodePool) MarshalJSON() ([]byte, error) { + type NoMethod NodePool + raw := NoMethod(*s) + return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) +} + // NotificationConfig: Cloud Security Command Center (Cloud SCC) // notification configs. A notification config is a Cloud SCC resource // that contains the configuration to send notifications for @@ -3700,6 +3982,44 @@ func (s *OrganizationSettings) MarshalJSON() ([]byte, error) { return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) } +// Pod: Kubernetes Pod. +type Pod struct { + // Containers: Pod containers associated with this finding, if any. + Containers []*Container `json:"containers,omitempty"` + + // Labels: Pod labels. For Kubernetes containers, these are applied to + // the container. + Labels []*Label `json:"labels,omitempty"` + + // Name: Kubernetes Pod name. + Name string `json:"name,omitempty"` + + // Ns: Kubernetes Pod namespace. + Ns string `json:"ns,omitempty"` + + // ForceSendFields is a list of field names (e.g. "Containers") 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. "Containers") 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 *Pod) MarshalJSON() ([]byte, error) { + type NoMethod Pod + raw := NoMethod(*s) + return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) +} + // Policy: 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 @@ -3989,6 +4309,45 @@ func (s *Resource) MarshalJSON() ([]byte, error) { return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) } +// Role: Kubernetes Role or ClusterRole. +type Role struct { + // Kind: Role type. + // + // Possible values: + // "KIND_UNSPECIFIED" - Role type is not specified. + // "ROLE" - Kubernetes Role. + // "CLUSTER_ROLE" - Kubernetes ClusterRole. + Kind string `json:"kind,omitempty"` + + // Name: Role name. + Name string `json:"name,omitempty"` + + // Ns: Role namespace. + Ns string `json:"ns,omitempty"` + + // ForceSendFields is a list of field names (e.g. "Kind") 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. "Kind") 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 *Role) MarshalJSON() ([]byte, error) { + type NoMethod Role + raw := NoMethod(*s) + return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) +} + // RunAssetDiscoveryRequest: Request message for running asset discovery // for an organization. type RunAssetDiscoveryRequest struct { @@ -4376,6 +4735,47 @@ func (s *StreamingConfig) MarshalJSON() ([]byte, error) { return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) } +// Subject: Represents a Kubernetes Subject. +type Subject struct { + // Kind: Authentication type for subject. + // + // Possible values: + // "AUTH_TYPE_UNSPECIFIED" - Authentication is not specified. + // "USER" - User with valid certificate. + // "SERVICEACCOUNT" - Users managed by Kubernetes API with credentials + // stored as Secrets. + // "GROUP" - Collection of users. + Kind string `json:"kind,omitempty"` + + // Name: Name for subject. + Name string `json:"name,omitempty"` + + // Ns: Namespace for subject. + Ns string `json:"ns,omitempty"` + + // ForceSendFields is a list of field names (e.g. "Kind") 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. "Kind") 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 *Subject) MarshalJSON() ([]byte, error) { + type NoMethod Subject + raw := NoMethod(*s) + return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) +} + // TestIamPermissionsRequest: Request message for `TestIamPermissions` // method. type TestIamPermissionsRequest struct { diff --git a/securitycenter/v1beta1/securitycenter-api.json b/securitycenter/v1beta1/securitycenter-api.json index cad5783197e..56d3a80a543 100644 --- a/securitycenter/v1beta1/securitycenter-api.json +++ b/securitycenter/v1beta1/securitycenter-api.json @@ -896,7 +896,7 @@ } } }, - "revision": "20220707", + "revision": "20220713", "rootUrl": "https://securitycenter.googleapis.com/", "schemas": { "Access": { @@ -930,6 +930,41 @@ }, "type": "object" }, + "AccessReview": { + "description": "Conveys information about a Kubernetes access review (e.g. kubectl auth can-i ...) that was involved in a finding.", + "id": "AccessReview", + "properties": { + "group": { + "description": "Group is the API Group of the Resource. \"*\" means all.", + "type": "string" + }, + "name": { + "description": "Name is the name of the resource being requested. Empty means all.", + "type": "string" + }, + "ns": { + "description": "Namespace of the action being requested. Currently, there is no distinction between no namespace and all namespaces. Both are represented by \"\" (empty).", + "type": "string" + }, + "resource": { + "description": "Resource is the optional resource type requested. \"*\" means all.", + "type": "string" + }, + "subresource": { + "description": "Subresource is the optional subresource type.", + "type": "string" + }, + "verb": { + "description": "Verb is a Kubernetes resource API verb, like: get, list, watch, create, update, delete, proxy. \"*\" means all.", + "type": "string" + }, + "version": { + "description": "Version is the API Version of the Resource. \"*\" means all.", + "type": "string" + } + }, + "type": "object" + }, "Asset": { "description": "Security Command Center representation of a Google Cloud resource. The Asset is a Security Command Center resource that captures information about a single Google Cloud resource. All modifications to an Asset are only within the context of Security Command Center and don't affect the referenced Google Cloud resource.", "id": "Asset", @@ -1162,6 +1197,32 @@ }, "type": "object" }, + "Container": { + "description": "Container associated with the finding.", + "id": "Container", + "properties": { + "imageId": { + "description": "Optional container image id, when provided by the container runtime. Uniquely identifies the container image launched using a container image digest.", + "type": "string" + }, + "labels": { + "description": "Container labels, as provided by the container runtime.", + "items": { + "$ref": "Label" + }, + "type": "array" + }, + "name": { + "description": "Container name.", + "type": "string" + }, + "uri": { + "description": "Container image URI provided when configuring a pod/container. May identify a container image version using mutable tags.", + "type": "string" + } + }, + "type": "object" + }, "Cve": { "description": "CVE stands for Common Vulnerabilities and Exposures. More information: https://cve.mitre.org", "id": "Cve", @@ -1490,10 +1551,17 @@ "additionalProperties": { "$ref": "ContactDetails" }, - "description": "Output only. Map containing the point of contacts for the given finding. The key represents the type of contact, while the value contains a list of all the contacts that pertain. Please refer to: https://cloud.google.com/resource-manager/docs/managing-notification-contacts#notification-categories { \"security\":[ { \"contact\":{ \"email\":\"person1@company.com\" } }, { \"contact\":{ \"email\":“person2@company.com” } } ] }", + "description": "Output only. Map containing the point of contacts for the given finding. The key represents the type of contact, while the value contains a list of all the contacts that pertain. Please refer to: https://cloud.google.com/resource-manager/docs/managing-notification-contacts#notification-categories { \"security\": { \"contacts\": [ { \"email\": \"person1@company.com\" }, { \"email\": \"person2@company.com\" } ] }", "readOnly": true, "type": "object" }, + "containers": { + "description": "Containers associated with the finding. containers provides information for both Kubernetes and non-Kubernetes containers.", + "items": { + "$ref": "Container" + }, + "type": "array" + }, "createTime": { "description": "The time at which the finding was created in Security Command Center.", "format": "google-datetime", @@ -1555,6 +1623,10 @@ "$ref": "Indicator", "description": "Represents what's commonly known as an Indicator of compromise (IoC) in computer forensics. This is an artifact observed on a network or in an operating system that, with high confidence, indicates a computer intrusion. Reference: https://en.wikipedia.org/wiki/Indicator_of_compromise" }, + "kubernetes": { + "$ref": "Kubernetes", + "description": "Kubernetes resources associated with the finding." + }, "mitreAttack": { "$ref": "MitreAttack", "description": "MITRE ATT\u0026CK tactics and techniques related to this finding. See: https://attack.mitre.org" @@ -1753,6 +1825,32 @@ }, "type": "object" }, + "GoogleCloudSecuritycenterV1Binding": { + "description": "Represents a Kubernetes RoleBinding or ClusterRoleBinding.", + "id": "GoogleCloudSecuritycenterV1Binding", + "properties": { + "name": { + "description": "Name for binding.", + "type": "string" + }, + "ns": { + "description": "Namespace for binding.", + "type": "string" + }, + "role": { + "$ref": "Role", + "description": "The Role or ClusterRole referenced by the binding." + }, + "subjects": { + "description": "Represents the subjects(s) bound to the role. Not always available for PATCH requests.", + "items": { + "$ref": "Subject" + }, + "type": "array" + } + }, + "type": "object" + }, "GoogleCloudSecuritycenterV1BulkMuteFindingsResponse": { "description": "The response to a BulkMute request. Contains the LRO information.", "id": "GoogleCloudSecuritycenterV1BulkMuteFindingsResponse", @@ -2418,6 +2516,70 @@ }, "type": "object" }, + "Kubernetes": { + "description": "Kubernetes related attributes.", + "id": "Kubernetes", + "properties": { + "accessReviews": { + "description": "Provides information on any Kubernetes access reviews (i.e. privilege checks) relevant to the finding.", + "items": { + "$ref": "AccessReview" + }, + "type": "array" + }, + "bindings": { + "description": "Provides Kubernetes role binding information for findings that involve RoleBindings or ClusterRoleBindings.", + "items": { + "$ref": "GoogleCloudSecuritycenterV1Binding" + }, + "type": "array" + }, + "nodePools": { + "description": "GKE Node Pools associated with the finding. This field will contain NodePool information for each Node, when it is available.", + "items": { + "$ref": "NodePool" + }, + "type": "array" + }, + "nodes": { + "description": "Provides Kubernetes Node information.", + "items": { + "$ref": "Node" + }, + "type": "array" + }, + "pods": { + "description": "Kubernetes Pods associated with the finding. This field will contain Pod records for each container that is owned by a Pod.", + "items": { + "$ref": "Pod" + }, + "type": "array" + }, + "roles": { + "description": "Provides Kubernetes role information for findings that involve Roles or ClusterRoles.", + "items": { + "$ref": "Role" + }, + "type": "array" + } + }, + "type": "object" + }, + "Label": { + "description": "Label represents a generic name=value label. Label has separate name and value fields to support filtering with contains().", + "id": "Label", + "properties": { + "name": { + "description": "Label name.", + "type": "string" + }, + "value": { + "description": "Label value.", + "type": "string" + } + }, + "type": "object" + }, "ListAssetsResponse": { "description": "Response message for listing assets.", "id": "ListAssetsResponse", @@ -2637,7 +2799,8 @@ "MODIFY_AUTHENTICATION_PROCESS", "DATA_DESTRUCTION", "DOMAIN_POLICY_MODIFICATION", - "IMPAIR_DEFENSES" + "IMPAIR_DEFENSES", + "NETWORK_SERVICE_DISCOVERY" ], "enumDescriptions": [ "Unspecified value.", @@ -2671,7 +2834,8 @@ "T1556", "T1485", "T1484", - "T1562" + "T1562", + "T1046" ], "type": "string" }, @@ -2750,7 +2914,8 @@ "MODIFY_AUTHENTICATION_PROCESS", "DATA_DESTRUCTION", "DOMAIN_POLICY_MODIFICATION", - "IMPAIR_DEFENSES" + "IMPAIR_DEFENSES", + "NETWORK_SERVICE_DISCOVERY" ], "enumDescriptions": [ "Unspecified value.", @@ -2784,7 +2949,8 @@ "T1556", "T1485", "T1484", - "T1562" + "T1562", + "T1046" ], "type": "string" }, @@ -2797,6 +2963,35 @@ }, "type": "object" }, + "Node": { + "description": "Kubernetes Nodes associated with the finding.", + "id": "Node", + "properties": { + "name": { + "description": "Full Resource name of the Compute Engine VM running the cluster node.", + "type": "string" + } + }, + "type": "object" + }, + "NodePool": { + "description": "Provides GKE Node Pool information.", + "id": "NodePool", + "properties": { + "name": { + "description": "Kubernetes Node pool name.", + "type": "string" + }, + "nodes": { + "description": "Nodes associated with the finding.", + "items": { + "$ref": "Node" + }, + "type": "array" + } + }, + "type": "object" + }, "Operation": { "description": "This resource represents a long-running operation that is the result of a network API call.", "id": "Operation", @@ -2851,6 +3046,35 @@ }, "type": "object" }, + "Pod": { + "description": "Kubernetes Pod.", + "id": "Pod", + "properties": { + "containers": { + "description": "Pod containers associated with this finding, if any.", + "items": { + "$ref": "Container" + }, + "type": "array" + }, + "labels": { + "description": "Pod labels. For Kubernetes containers, these are applied to the container.", + "items": { + "$ref": "Label" + }, + "type": "array" + }, + "name": { + "description": "Kubernetes Pod name.", + "type": "string" + }, + "ns": { + "description": "Kubernetes Pod namespace.", + "type": "string" + } + }, + "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/).", "id": "Policy", @@ -2970,6 +3194,35 @@ }, "type": "object" }, + "Role": { + "description": "Kubernetes Role or ClusterRole.", + "id": "Role", + "properties": { + "kind": { + "description": "Role type.", + "enum": [ + "KIND_UNSPECIFIED", + "ROLE", + "CLUSTER_ROLE" + ], + "enumDescriptions": [ + "Role type is not specified.", + "Kubernetes Role.", + "Kubernetes ClusterRole." + ], + "type": "string" + }, + "name": { + "description": "Role name.", + "type": "string" + }, + "ns": { + "description": "Role namespace.", + "type": "string" + } + }, + "type": "object" + }, "RunAssetDiscoveryRequest": { "description": "Request message for running asset discovery for an organization.", "id": "RunAssetDiscoveryRequest", @@ -3116,6 +3369,37 @@ }, "type": "object" }, + "Subject": { + "description": "Represents a Kubernetes Subject.", + "id": "Subject", + "properties": { + "kind": { + "description": "Authentication type for subject.", + "enum": [ + "AUTH_TYPE_UNSPECIFIED", + "USER", + "SERVICEACCOUNT", + "GROUP" + ], + "enumDescriptions": [ + "Authentication is not specified.", + "User with valid certificate.", + "Users managed by Kubernetes API with credentials stored as Secrets.", + "Collection of users." + ], + "type": "string" + }, + "name": { + "description": "Name for subject.", + "type": "string" + }, + "ns": { + "description": "Namespace for subject.", + "type": "string" + } + }, + "type": "object" + }, "TestIamPermissionsRequest": { "description": "Request message for `TestIamPermissions` method.", "id": "TestIamPermissionsRequest", diff --git a/securitycenter/v1beta1/securitycenter-gen.go b/securitycenter/v1beta1/securitycenter-gen.go index 136f4594347..2118b8ae786 100644 --- a/securitycenter/v1beta1/securitycenter-gen.go +++ b/securitycenter/v1beta1/securitycenter-gen.go @@ -241,6 +241,58 @@ func (s *Access) MarshalJSON() ([]byte, error) { return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) } +// AccessReview: Conveys information about a Kubernetes access review +// (e.g. kubectl auth can-i ...) that was involved in a finding. +type AccessReview struct { + // Group: Group is the API Group of the Resource. "*" means all. + Group string `json:"group,omitempty"` + + // Name: Name is the name of the resource being requested. Empty means + // all. + Name string `json:"name,omitempty"` + + // Ns: Namespace of the action being requested. Currently, there is no + // distinction between no namespace and all namespaces. Both are + // represented by "" (empty). + Ns string `json:"ns,omitempty"` + + // Resource: Resource is the optional resource type requested. "*" means + // all. + Resource string `json:"resource,omitempty"` + + // Subresource: Subresource is the optional subresource type. + Subresource string `json:"subresource,omitempty"` + + // Verb: Verb is a Kubernetes resource API verb, like: get, list, watch, + // create, update, delete, proxy. "*" means all. + Verb string `json:"verb,omitempty"` + + // Version: Version is the API Version of the Resource. "*" means all. + Version string `json:"version,omitempty"` + + // ForceSendFields is a list of field names (e.g. "Group") 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. "Group") 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 *AccessReview) MarshalJSON() ([]byte, error) { + type NoMethod AccessReview + raw := NoMethod(*s) + return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) +} + // Asset: Security Command Center representation of a Google Cloud // resource. The Asset is a Security Command Center resource that // captures information about a single Google Cloud resource. All @@ -657,6 +709,46 @@ func (s *ContactDetails) MarshalJSON() ([]byte, error) { return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) } +// Container: Container associated with the finding. +type Container struct { + // ImageId: Optional container image id, when provided by the container + // runtime. Uniquely identifies the container image launched using a + // container image digest. + ImageId string `json:"imageId,omitempty"` + + // Labels: Container labels, as provided by the container runtime. + Labels []*Label `json:"labels,omitempty"` + + // Name: Container name. + Name string `json:"name,omitempty"` + + // Uri: Container image URI provided when configuring a pod/container. + // May identify a container image version using mutable tags. + Uri string `json:"uri,omitempty"` + + // ForceSendFields is a list of field names (e.g. "ImageId") 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. "ImageId") 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 *Container) MarshalJSON() ([]byte, error) { + type NoMethod Container + raw := NoMethod(*s) + return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) +} + // Cve: CVE stands for Common Vulnerabilities and Exposures. More // information: https://cve.mitre.org type Cve struct { @@ -1166,10 +1258,15 @@ type Finding struct { // value contains a list of all the contacts that pertain. Please refer // to: // https://cloud.google.com/resource-manager/docs/managing-notification-contacts#notification-categories - // { "security":[ { "contact":{ "email":"person1@company.com" } }, { - // "contact":{ "email":“person2@company.com” } } ] } + // { "security": { "contacts": [ { "email": "person1@company.com" }, { + // "email": "person2@company.com" } ] } Contacts map[string]ContactDetails `json:"contacts,omitempty"` + // Containers: Containers associated with the finding. containers + // provides information for both Kubernetes and non-Kubernetes + // containers. + Containers []*Container `json:"containers,omitempty"` + // CreateTime: The time at which the finding was created in Security // Command Center. CreateTime string `json:"createTime,omitempty"` @@ -1225,6 +1322,9 @@ type Finding struct { // https://en.wikipedia.org/wiki/Indicator_of_compromise Indicator *Indicator `json:"indicator,omitempty"` + // Kubernetes: Kubernetes resources associated with the finding. + Kubernetes *Kubernetes `json:"kubernetes,omitempty"` + // MitreAttack: MITRE ATT&CK tactics and techniques related to this // finding. See: https://attack.mitre.org MitreAttack *MitreAttack `json:"mitreAttack,omitempty"` @@ -1582,6 +1682,45 @@ func (s *GoogleCloudSecuritycenterV1BigQueryExport) MarshalJSON() ([]byte, error return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) } +// GoogleCloudSecuritycenterV1Binding: Represents a Kubernetes +// RoleBinding or ClusterRoleBinding. +type GoogleCloudSecuritycenterV1Binding struct { + // Name: Name for binding. + Name string `json:"name,omitempty"` + + // Ns: Namespace for binding. + Ns string `json:"ns,omitempty"` + + // Role: The Role or ClusterRole referenced by the binding. + Role *Role `json:"role,omitempty"` + + // Subjects: Represents the subjects(s) bound to the role. Not always + // available for PATCH requests. + Subjects []*Subject `json:"subjects,omitempty"` + + // ForceSendFields is a list of field names (e.g. "Name") 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. "Name") 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 *GoogleCloudSecuritycenterV1Binding) MarshalJSON() ([]byte, error) { + type NoMethod GoogleCloudSecuritycenterV1Binding + raw := NoMethod(*s) + return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) +} + // GoogleCloudSecuritycenterV1BulkMuteFindingsResponse: The response to // a BulkMute request. Contains the LRO information. type GoogleCloudSecuritycenterV1BulkMuteFindingsResponse struct { @@ -2707,6 +2846,87 @@ func (s *Indicator) MarshalJSON() ([]byte, error) { return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) } +// Kubernetes: Kubernetes related attributes. +type Kubernetes struct { + // AccessReviews: Provides information on any Kubernetes access reviews + // (i.e. privilege checks) relevant to the finding. + AccessReviews []*AccessReview `json:"accessReviews,omitempty"` + + // Bindings: Provides Kubernetes role binding information for findings + // that involve RoleBindings or ClusterRoleBindings. + Bindings []*GoogleCloudSecuritycenterV1Binding `json:"bindings,omitempty"` + + // NodePools: GKE Node Pools associated with the finding. This field + // will contain NodePool information for each Node, when it is + // available. + NodePools []*NodePool `json:"nodePools,omitempty"` + + // Nodes: Provides Kubernetes Node information. + Nodes []*Node `json:"nodes,omitempty"` + + // Pods: Kubernetes Pods associated with the finding. This field will + // contain Pod records for each container that is owned by a Pod. + Pods []*Pod `json:"pods,omitempty"` + + // Roles: Provides Kubernetes role information for findings that involve + // Roles or ClusterRoles. + Roles []*Role `json:"roles,omitempty"` + + // ForceSendFields is a list of field names (e.g. "AccessReviews") 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. "AccessReviews") 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 *Kubernetes) MarshalJSON() ([]byte, error) { + type NoMethod Kubernetes + raw := NoMethod(*s) + return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) +} + +// Label: Label represents a generic name=value label. Label has +// separate name and value fields to support filtering with contains(). +type Label struct { + // Name: Label name. + Name string `json:"name,omitempty"` + + // Value: Label value. + Value string `json:"value,omitempty"` + + // ForceSendFields is a list of field names (e.g. "Name") 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. "Name") 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 *Label) MarshalJSON() ([]byte, error) { + type NoMethod Label + raw := NoMethod(*s) + return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) +} + // ListAssetsResponse: Response message for listing assets. type ListAssetsResponse struct { // ListAssetsResults: Assets matching the list request. @@ -2996,6 +3216,7 @@ type MitreAttack struct { // "DATA_DESTRUCTION" - T1485 // "DOMAIN_POLICY_MODIFICATION" - T1484 // "IMPAIR_DEFENSES" - T1562 + // "NETWORK_SERVICE_DISCOVERY" - T1046 AdditionalTechniques []string `json:"additionalTechniques,omitempty"` // PrimaryTactic: The MITRE ATT&CK tactic most closely represented by @@ -3060,6 +3281,7 @@ type MitreAttack struct { // "DATA_DESTRUCTION" - T1485 // "DOMAIN_POLICY_MODIFICATION" - T1484 // "IMPAIR_DEFENSES" - T1562 + // "NETWORK_SERVICE_DISCOVERY" - T1046 PrimaryTechniques []string `json:"primaryTechniques,omitempty"` // Version: The MITRE ATT&CK version referenced by the above fields. @@ -3090,6 +3312,66 @@ func (s *MitreAttack) MarshalJSON() ([]byte, error) { return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) } +// Node: Kubernetes Nodes associated with the finding. +type Node struct { + // Name: Full Resource name of the Compute Engine VM running the cluster + // node. + Name string `json:"name,omitempty"` + + // ForceSendFields is a list of field names (e.g. "Name") 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. "Name") to include in API + // requests with the JSON null value. By default, fields with empty + // values are omitted from API requests. However, any field with an + // empty value appearing in NullFields will be sent to the server as + // null. It is an error if a field in this list has a non-empty value. + // This may be used to include null fields in Patch requests. + NullFields []string `json:"-"` +} + +func (s *Node) MarshalJSON() ([]byte, error) { + type NoMethod Node + raw := NoMethod(*s) + return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) +} + +// NodePool: Provides GKE Node Pool information. +type NodePool struct { + // Name: Kubernetes Node pool name. + Name string `json:"name,omitempty"` + + // Nodes: Nodes associated with the finding. + Nodes []*Node `json:"nodes,omitempty"` + + // ForceSendFields is a list of field names (e.g. "Name") 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. "Name") 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 *NodePool) MarshalJSON() ([]byte, error) { + type NoMethod NodePool + raw := NoMethod(*s) + return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) +} + // Operation: This resource represents a long-running operation that is // the result of a network API call. type Operation struct { @@ -3199,6 +3481,44 @@ func (s *OrganizationSettings) MarshalJSON() ([]byte, error) { return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) } +// Pod: Kubernetes Pod. +type Pod struct { + // Containers: Pod containers associated with this finding, if any. + Containers []*Container `json:"containers,omitempty"` + + // Labels: Pod labels. For Kubernetes containers, these are applied to + // the container. + Labels []*Label `json:"labels,omitempty"` + + // Name: Kubernetes Pod name. + Name string `json:"name,omitempty"` + + // Ns: Kubernetes Pod namespace. + Ns string `json:"ns,omitempty"` + + // ForceSendFields is a list of field names (e.g. "Containers") 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. "Containers") 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 *Pod) MarshalJSON() ([]byte, error) { + type NoMethod Pod + raw := NoMethod(*s) + return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) +} + // Policy: 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 @@ -3434,6 +3754,45 @@ func (s *Reference) MarshalJSON() ([]byte, error) { return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) } +// Role: Kubernetes Role or ClusterRole. +type Role struct { + // Kind: Role type. + // + // Possible values: + // "KIND_UNSPECIFIED" - Role type is not specified. + // "ROLE" - Kubernetes Role. + // "CLUSTER_ROLE" - Kubernetes ClusterRole. + Kind string `json:"kind,omitempty"` + + // Name: Role name. + Name string `json:"name,omitempty"` + + // Ns: Role namespace. + Ns string `json:"ns,omitempty"` + + // ForceSendFields is a list of field names (e.g. "Kind") 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. "Kind") 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 *Role) MarshalJSON() ([]byte, error) { + type NoMethod Role + raw := NoMethod(*s) + return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) +} + // RunAssetDiscoveryRequest: Request message for running asset discovery // for an organization. type RunAssetDiscoveryRequest struct { @@ -3720,6 +4079,47 @@ func (s *Status) MarshalJSON() ([]byte, error) { return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) } +// Subject: Represents a Kubernetes Subject. +type Subject struct { + // Kind: Authentication type for subject. + // + // Possible values: + // "AUTH_TYPE_UNSPECIFIED" - Authentication is not specified. + // "USER" - User with valid certificate. + // "SERVICEACCOUNT" - Users managed by Kubernetes API with credentials + // stored as Secrets. + // "GROUP" - Collection of users. + Kind string `json:"kind,omitempty"` + + // Name: Name for subject. + Name string `json:"name,omitempty"` + + // Ns: Namespace for subject. + Ns string `json:"ns,omitempty"` + + // ForceSendFields is a list of field names (e.g. "Kind") 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. "Kind") 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 *Subject) MarshalJSON() ([]byte, error) { + type NoMethod Subject + raw := NoMethod(*s) + return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) +} + // TestIamPermissionsRequest: Request message for `TestIamPermissions` // method. type TestIamPermissionsRequest struct { diff --git a/securitycenter/v1beta2/securitycenter-api.json b/securitycenter/v1beta2/securitycenter-api.json index e2923940a82..d12a2c07276 100644 --- a/securitycenter/v1beta2/securitycenter-api.json +++ b/securitycenter/v1beta2/securitycenter-api.json @@ -1981,7 +1981,7 @@ } } }, - "revision": "20220707", + "revision": "20220713", "rootUrl": "https://securitycenter.googleapis.com/", "schemas": { "Access": { @@ -2015,6 +2015,41 @@ }, "type": "object" }, + "AccessReview": { + "description": "Conveys information about a Kubernetes access review (e.g. kubectl auth can-i ...) that was involved in a finding.", + "id": "AccessReview", + "properties": { + "group": { + "description": "Group is the API Group of the Resource. \"*\" means all.", + "type": "string" + }, + "name": { + "description": "Name is the name of the resource being requested. Empty means all.", + "type": "string" + }, + "ns": { + "description": "Namespace of the action being requested. Currently, there is no distinction between no namespace and all namespaces. Both are represented by \"\" (empty).", + "type": "string" + }, + "resource": { + "description": "Resource is the optional resource type requested. \"*\" means all.", + "type": "string" + }, + "subresource": { + "description": "Subresource is the optional subresource type.", + "type": "string" + }, + "verb": { + "description": "Verb is a Kubernetes resource API verb, like: get, list, watch, create, update, delete, proxy. \"*\" means all.", + "type": "string" + }, + "version": { + "description": "Version is the API Version of the Resource. \"*\" means all.", + "type": "string" + } + }, + "type": "object" + }, "Compliance": { "description": "Contains compliance information about a security standard indicating unmet recommendations.", "id": "Compliance", @@ -2138,6 +2173,32 @@ }, "type": "object" }, + "Container": { + "description": "Container associated with the finding.", + "id": "Container", + "properties": { + "imageId": { + "description": "Optional container image id, when provided by the container runtime. Uniquely identifies the container image launched using a container image digest.", + "type": "string" + }, + "labels": { + "description": "Container labels, as provided by the container runtime.", + "items": { + "$ref": "Label" + }, + "type": "array" + }, + "name": { + "description": "Container name.", + "type": "string" + }, + "uri": { + "description": "Container image URI provided when configuring a pod/container. May identify a container image version using mutable tags.", + "type": "string" + } + }, + "type": "object" + }, "ContainerThreatDetectionSettings": { "description": "Resource capturing the settings for the Container Threat Detection service.", "id": "ContainerThreatDetectionSettings", @@ -2557,10 +2618,17 @@ "additionalProperties": { "$ref": "ContactDetails" }, - "description": "Output only. Map containing the point of contacts for the given finding. The key represents the type of contact, while the value contains a list of all the contacts that pertain. Please refer to: https://cloud.google.com/resource-manager/docs/managing-notification-contacts#notification-categories { \"security\":[ { \"contact\":{ \"email\":\"person1@company.com\" } }, { \"contact\":{ \"email\":“person2@company.com” } } ] }", + "description": "Output only. Map containing the point of contacts for the given finding. The key represents the type of contact, while the value contains a list of all the contacts that pertain. Please refer to: https://cloud.google.com/resource-manager/docs/managing-notification-contacts#notification-categories { \"security\": { \"contacts\": [ { \"email\": \"person1@company.com\" }, { \"email\": \"person2@company.com\" } ] }", "readOnly": true, "type": "object" }, + "containers": { + "description": "Containers associated with the finding. containers provides information for both Kubernetes and non-Kubernetes containers.", + "items": { + "$ref": "Container" + }, + "type": "array" + }, "createTime": { "description": "The time at which the finding was created in Security Command Center.", "format": "google-datetime", @@ -2622,6 +2690,10 @@ "$ref": "Indicator", "description": "Represents what's commonly known as an Indicator of compromise (IoC) in computer forensics. This is an artifact observed on a network or in an operating system that, with high confidence, indicates a computer intrusion. Reference: https://en.wikipedia.org/wiki/Indicator_of_compromise" }, + "kubernetes": { + "$ref": "Kubernetes", + "description": "Kubernetes resources associated with the finding." + }, "mitreAttack": { "$ref": "MitreAttack", "description": "MITRE ATT\u0026CK tactics and techniques related to this finding. See: https://attack.mitre.org" @@ -2797,6 +2869,32 @@ }, "type": "object" }, + "GoogleCloudSecuritycenterV1Binding": { + "description": "Represents a Kubernetes RoleBinding or ClusterRoleBinding.", + "id": "GoogleCloudSecuritycenterV1Binding", + "properties": { + "name": { + "description": "Name for binding.", + "type": "string" + }, + "ns": { + "description": "Namespace for binding.", + "type": "string" + }, + "role": { + "$ref": "Role", + "description": "The Role or ClusterRole referenced by the binding." + }, + "subjects": { + "description": "Represents the subjects(s) bound to the role. Not always available for PATCH requests.", + "items": { + "$ref": "Subject" + }, + "type": "array" + } + }, + "type": "object" + }, "GoogleCloudSecuritycenterV1BulkMuteFindingsResponse": { "description": "The response to a BulkMute request. Contains the LRO information.", "id": "GoogleCloudSecuritycenterV1BulkMuteFindingsResponse", @@ -3253,6 +3351,70 @@ }, "type": "object" }, + "Kubernetes": { + "description": "Kubernetes related attributes.", + "id": "Kubernetes", + "properties": { + "accessReviews": { + "description": "Provides information on any Kubernetes access reviews (i.e. privilege checks) relevant to the finding.", + "items": { + "$ref": "AccessReview" + }, + "type": "array" + }, + "bindings": { + "description": "Provides Kubernetes role binding information for findings that involve RoleBindings or ClusterRoleBindings.", + "items": { + "$ref": "GoogleCloudSecuritycenterV1Binding" + }, + "type": "array" + }, + "nodePools": { + "description": "GKE Node Pools associated with the finding. This field will contain NodePool information for each Node, when it is available.", + "items": { + "$ref": "NodePool" + }, + "type": "array" + }, + "nodes": { + "description": "Provides Kubernetes Node information.", + "items": { + "$ref": "Node" + }, + "type": "array" + }, + "pods": { + "description": "Kubernetes Pods associated with the finding. This field will contain Pod records for each container that is owned by a Pod.", + "items": { + "$ref": "Pod" + }, + "type": "array" + }, + "roles": { + "description": "Provides Kubernetes role information for findings that involve Roles or ClusterRoles.", + "items": { + "$ref": "Role" + }, + "type": "array" + } + }, + "type": "object" + }, + "Label": { + "description": "Label represents a generic name=value label. Label has separate name and value fields to support filtering with contains().", + "id": "Label", + "properties": { + "name": { + "description": "Label name.", + "type": "string" + }, + "value": { + "description": "Label value.", + "type": "string" + } + }, + "type": "object" + }, "MemoryHashSignature": { "description": "A signature corresponding to memory page hashes.", "id": "MemoryHashSignature", @@ -3351,7 +3513,8 @@ "MODIFY_AUTHENTICATION_PROCESS", "DATA_DESTRUCTION", "DOMAIN_POLICY_MODIFICATION", - "IMPAIR_DEFENSES" + "IMPAIR_DEFENSES", + "NETWORK_SERVICE_DISCOVERY" ], "enumDescriptions": [ "Unspecified value.", @@ -3385,7 +3548,8 @@ "T1556", "T1485", "T1484", - "T1562" + "T1562", + "T1046" ], "type": "string" }, @@ -3464,7 +3628,8 @@ "MODIFY_AUTHENTICATION_PROCESS", "DATA_DESTRUCTION", "DOMAIN_POLICY_MODIFICATION", - "IMPAIR_DEFENSES" + "IMPAIR_DEFENSES", + "NETWORK_SERVICE_DISCOVERY" ], "enumDescriptions": [ "Unspecified value.", @@ -3498,7 +3663,8 @@ "T1556", "T1485", "T1484", - "T1562" + "T1562", + "T1046" ], "type": "string" }, @@ -3511,6 +3677,35 @@ }, "type": "object" }, + "Node": { + "description": "Kubernetes Nodes associated with the finding.", + "id": "Node", + "properties": { + "name": { + "description": "Full Resource name of the Compute Engine VM running the cluster node.", + "type": "string" + } + }, + "type": "object" + }, + "NodePool": { + "description": "Provides GKE Node Pool information.", + "id": "NodePool", + "properties": { + "name": { + "description": "Kubernetes Node pool name.", + "type": "string" + }, + "nodes": { + "description": "Nodes associated with the finding.", + "items": { + "$ref": "Node" + }, + "type": "array" + } + }, + "type": "object" + }, "OnboardingState": { "description": "Resource capturing onboarding information for a given CRM resource.", "id": "OnboardingState", @@ -3536,6 +3731,35 @@ }, "type": "object" }, + "Pod": { + "description": "Kubernetes Pod.", + "id": "Pod", + "properties": { + "containers": { + "description": "Pod containers associated with this finding, if any.", + "items": { + "$ref": "Container" + }, + "type": "array" + }, + "labels": { + "description": "Pod labels. For Kubernetes containers, these are applied to the container.", + "items": { + "$ref": "Label" + }, + "type": "array" + }, + "name": { + "description": "Kubernetes Pod name.", + "type": "string" + }, + "ns": { + "description": "Kubernetes Pod namespace.", + "type": "string" + } + }, + "type": "object" + }, "Process": { "description": "Represents an operating system process.", "id": "Process", @@ -3664,12 +3888,41 @@ }, "type": "object" }, + "Role": { + "description": "Kubernetes Role or ClusterRole.", + "id": "Role", + "properties": { + "kind": { + "description": "Role type.", + "enum": [ + "KIND_UNSPECIFIED", + "ROLE", + "CLUSTER_ROLE" + ], + "enumDescriptions": [ + "Role type is not specified.", + "Kubernetes Role.", + "Kubernetes ClusterRole." + ], + "type": "string" + }, + "name": { + "description": "Role name.", + "type": "string" + }, + "ns": { + "description": "Role namespace.", + "type": "string" + } + }, + "type": "object" + }, "SecurityCenterSettings": { "description": "Resource capturing the settings for Security Center.", "id": "SecurityCenterSettings", "properties": { "logSinkProject": { - "description": "The resource name of the project to send logs to. This project must be part of the organization this resource resides in. The format is `projects/{project_id}`. An empty value disables logging. This value is only referenced by services that support log sink. Please refer to the documentation for an updated list of compatible services.", + "description": "The resource name of the project to send logs to. This project must be part of the organization this resource resides in. The format is `projects/{project_id}`. An empty value disables logging. This value is only referenced by services that support log sink. Please refer to the documentation for an updated list of compatible services. This may only be specified for organization level onboarding.", "type": "string" }, "name": { @@ -3677,12 +3930,14 @@ "type": "string" }, "onboardingTime": { - "description": "Timestamp of when the customer organization was onboarded to SCC.", + "description": "Output only. Timestamp of when the customer organization was onboarded to SCC.", "format": "google-datetime", + "readOnly": true, "type": "string" }, "orgServiceAccount": { - "description": "The organization level service account to be used for security center components.", + "description": "Output only. The organization level service account to be used for security center components.", + "readOnly": true, "type": "string" } }, @@ -3755,6 +4010,37 @@ }, "type": "object" }, + "Subject": { + "description": "Represents a Kubernetes Subject.", + "id": "Subject", + "properties": { + "kind": { + "description": "Authentication type for subject.", + "enum": [ + "AUTH_TYPE_UNSPECIFIED", + "USER", + "SERVICEACCOUNT", + "GROUP" + ], + "enumDescriptions": [ + "Authentication is not specified.", + "User with valid certificate.", + "Users managed by Kubernetes API with credentials stored as Secrets.", + "Collection of users." + ], + "type": "string" + }, + "name": { + "description": "Name for subject.", + "type": "string" + }, + "ns": { + "description": "Namespace for subject.", + "type": "string" + } + }, + "type": "object" + }, "Subscription": { "description": "Resource capturing the state of an organization's subscription.", "id": "Subscription", diff --git a/securitycenter/v1beta2/securitycenter-gen.go b/securitycenter/v1beta2/securitycenter-gen.go index dc374ea4106..3f4fc13db79 100644 --- a/securitycenter/v1beta2/securitycenter-gen.go +++ b/securitycenter/v1beta2/securitycenter-gen.go @@ -469,6 +469,58 @@ func (s *Access) MarshalJSON() ([]byte, error) { return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) } +// AccessReview: Conveys information about a Kubernetes access review +// (e.g. kubectl auth can-i ...) that was involved in a finding. +type AccessReview struct { + // Group: Group is the API Group of the Resource. "*" means all. + Group string `json:"group,omitempty"` + + // Name: Name is the name of the resource being requested. Empty means + // all. + Name string `json:"name,omitempty"` + + // Ns: Namespace of the action being requested. Currently, there is no + // distinction between no namespace and all namespaces. Both are + // represented by "" (empty). + Ns string `json:"ns,omitempty"` + + // Resource: Resource is the optional resource type requested. "*" means + // all. + Resource string `json:"resource,omitempty"` + + // Subresource: Subresource is the optional subresource type. + Subresource string `json:"subresource,omitempty"` + + // Verb: Verb is a Kubernetes resource API verb, like: get, list, watch, + // create, update, delete, proxy. "*" means all. + Verb string `json:"verb,omitempty"` + + // Version: Version is the API Version of the Resource. "*" means all. + Version string `json:"version,omitempty"` + + // ForceSendFields is a list of field names (e.g. "Group") 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. "Group") 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 *AccessReview) MarshalJSON() ([]byte, error) { + type NoMethod AccessReview + raw := NoMethod(*s) + return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) +} + // Compliance: Contains compliance information about a security standard // indicating unmet recommendations. type Compliance struct { @@ -654,6 +706,46 @@ func (s *ContactDetails) MarshalJSON() ([]byte, error) { return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) } +// Container: Container associated with the finding. +type Container struct { + // ImageId: Optional container image id, when provided by the container + // runtime. Uniquely identifies the container image launched using a + // container image digest. + ImageId string `json:"imageId,omitempty"` + + // Labels: Container labels, as provided by the container runtime. + Labels []*Label `json:"labels,omitempty"` + + // Name: Container name. + Name string `json:"name,omitempty"` + + // Uri: Container image URI provided when configuring a pod/container. + // May identify a container image version using mutable tags. + Uri string `json:"uri,omitempty"` + + // ForceSendFields is a list of field names (e.g. "ImageId") 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. "ImageId") 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 *Container) MarshalJSON() ([]byte, error) { + type NoMethod Container + raw := NoMethod(*s) + return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) +} + // ContainerThreatDetectionSettings: Resource capturing the settings for // the Container Threat Detection service. type ContainerThreatDetectionSettings struct { @@ -1254,10 +1346,15 @@ type Finding struct { // value contains a list of all the contacts that pertain. Please refer // to: // https://cloud.google.com/resource-manager/docs/managing-notification-contacts#notification-categories - // { "security":[ { "contact":{ "email":"person1@company.com" } }, { - // "contact":{ "email":“person2@company.com” } } ] } + // { "security": { "contacts": [ { "email": "person1@company.com" }, { + // "email": "person2@company.com" } ] } Contacts map[string]ContactDetails `json:"contacts,omitempty"` + // Containers: Containers associated with the finding. containers + // provides information for both Kubernetes and non-Kubernetes + // containers. + Containers []*Container `json:"containers,omitempty"` + // CreateTime: The time at which the finding was created in Security // Command Center. CreateTime string `json:"createTime,omitempty"` @@ -1313,6 +1410,9 @@ type Finding struct { // https://en.wikipedia.org/wiki/Indicator_of_compromise Indicator *Indicator `json:"indicator,omitempty"` + // Kubernetes: Kubernetes resources associated with the finding. + Kubernetes *Kubernetes `json:"kubernetes,omitempty"` + // MitreAttack: MITRE ATT&CK tactics and techniques related to this // finding. See: https://attack.mitre.org MitreAttack *MitreAttack `json:"mitreAttack,omitempty"` @@ -1600,6 +1700,45 @@ func (s *GoogleCloudSecuritycenterV1BigQueryExport) MarshalJSON() ([]byte, error return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) } +// GoogleCloudSecuritycenterV1Binding: Represents a Kubernetes +// RoleBinding or ClusterRoleBinding. +type GoogleCloudSecuritycenterV1Binding struct { + // Name: Name for binding. + Name string `json:"name,omitempty"` + + // Ns: Namespace for binding. + Ns string `json:"ns,omitempty"` + + // Role: The Role or ClusterRole referenced by the binding. + Role *Role `json:"role,omitempty"` + + // Subjects: Represents the subjects(s) bound to the role. Not always + // available for PATCH requests. + Subjects []*Subject `json:"subjects,omitempty"` + + // ForceSendFields is a list of field names (e.g. "Name") 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. "Name") 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 *GoogleCloudSecuritycenterV1Binding) MarshalJSON() ([]byte, error) { + type NoMethod GoogleCloudSecuritycenterV1Binding + raw := NoMethod(*s) + return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) +} + // GoogleCloudSecuritycenterV1BulkMuteFindingsResponse: The response to // a BulkMute request. Contains the LRO information. type GoogleCloudSecuritycenterV1BulkMuteFindingsResponse struct { @@ -2309,6 +2448,87 @@ func (s *Indicator) MarshalJSON() ([]byte, error) { return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) } +// Kubernetes: Kubernetes related attributes. +type Kubernetes struct { + // AccessReviews: Provides information on any Kubernetes access reviews + // (i.e. privilege checks) relevant to the finding. + AccessReviews []*AccessReview `json:"accessReviews,omitempty"` + + // Bindings: Provides Kubernetes role binding information for findings + // that involve RoleBindings or ClusterRoleBindings. + Bindings []*GoogleCloudSecuritycenterV1Binding `json:"bindings,omitempty"` + + // NodePools: GKE Node Pools associated with the finding. This field + // will contain NodePool information for each Node, when it is + // available. + NodePools []*NodePool `json:"nodePools,omitempty"` + + // Nodes: Provides Kubernetes Node information. + Nodes []*Node `json:"nodes,omitempty"` + + // Pods: Kubernetes Pods associated with the finding. This field will + // contain Pod records for each container that is owned by a Pod. + Pods []*Pod `json:"pods,omitempty"` + + // Roles: Provides Kubernetes role information for findings that involve + // Roles or ClusterRoles. + Roles []*Role `json:"roles,omitempty"` + + // ForceSendFields is a list of field names (e.g. "AccessReviews") 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. "AccessReviews") 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 *Kubernetes) MarshalJSON() ([]byte, error) { + type NoMethod Kubernetes + raw := NoMethod(*s) + return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) +} + +// Label: Label represents a generic name=value label. Label has +// separate name and value fields to support filtering with contains(). +type Label struct { + // Name: Label name. + Name string `json:"name,omitempty"` + + // Value: Label value. + Value string `json:"value,omitempty"` + + // ForceSendFields is a list of field names (e.g. "Name") 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. "Name") 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 *Label) MarshalJSON() ([]byte, error) { + type NoMethod Label + raw := NoMethod(*s) + return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) +} + // MemoryHashSignature: A signature corresponding to memory page hashes. type MemoryHashSignature struct { // BinaryFamily: The binary family. @@ -2402,6 +2622,7 @@ type MitreAttack struct { // "DATA_DESTRUCTION" - T1485 // "DOMAIN_POLICY_MODIFICATION" - T1484 // "IMPAIR_DEFENSES" - T1562 + // "NETWORK_SERVICE_DISCOVERY" - T1046 AdditionalTechniques []string `json:"additionalTechniques,omitempty"` // PrimaryTactic: The MITRE ATT&CK tactic most closely represented by @@ -2466,6 +2687,7 @@ type MitreAttack struct { // "DATA_DESTRUCTION" - T1485 // "DOMAIN_POLICY_MODIFICATION" - T1484 // "IMPAIR_DEFENSES" - T1562 + // "NETWORK_SERVICE_DISCOVERY" - T1046 PrimaryTechniques []string `json:"primaryTechniques,omitempty"` // Version: The MITRE ATT&CK version referenced by the above fields. @@ -2496,6 +2718,66 @@ func (s *MitreAttack) MarshalJSON() ([]byte, error) { return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) } +// Node: Kubernetes Nodes associated with the finding. +type Node struct { + // Name: Full Resource name of the Compute Engine VM running the cluster + // node. + Name string `json:"name,omitempty"` + + // ForceSendFields is a list of field names (e.g. "Name") 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. "Name") to include in API + // requests with the JSON null value. By default, fields with empty + // values are omitted from API requests. However, any field with an + // empty value appearing in NullFields will be sent to the server as + // null. It is an error if a field in this list has a non-empty value. + // This may be used to include null fields in Patch requests. + NullFields []string `json:"-"` +} + +func (s *Node) MarshalJSON() ([]byte, error) { + type NoMethod Node + raw := NoMethod(*s) + return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) +} + +// NodePool: Provides GKE Node Pool information. +type NodePool struct { + // Name: Kubernetes Node pool name. + Name string `json:"name,omitempty"` + + // Nodes: Nodes associated with the finding. + Nodes []*Node `json:"nodes,omitempty"` + + // ForceSendFields is a list of field names (e.g. "Name") 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. "Name") 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 *NodePool) MarshalJSON() ([]byte, error) { + type NoMethod NodePool + raw := NoMethod(*s) + return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) +} + // OnboardingState: Resource capturing onboarding information for a // given CRM resource. type OnboardingState struct { @@ -2545,6 +2827,44 @@ func (s *OnboardingState) MarshalJSON() ([]byte, error) { return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) } +// Pod: Kubernetes Pod. +type Pod struct { + // Containers: Pod containers associated with this finding, if any. + Containers []*Container `json:"containers,omitempty"` + + // Labels: Pod labels. For Kubernetes containers, these are applied to + // the container. + Labels []*Label `json:"labels,omitempty"` + + // Name: Kubernetes Pod name. + Name string `json:"name,omitempty"` + + // Ns: Kubernetes Pod namespace. + Ns string `json:"ns,omitempty"` + + // ForceSendFields is a list of field names (e.g. "Containers") 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. "Containers") 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 *Pod) MarshalJSON() ([]byte, error) { + type NoMethod Pod + raw := NoMethod(*s) + return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) +} + // Process: Represents an operating system process. type Process struct { // Args: Process arguments as JSON encoded strings. @@ -2727,6 +3047,45 @@ func (s *Reference) MarshalJSON() ([]byte, error) { return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) } +// Role: Kubernetes Role or ClusterRole. +type Role struct { + // Kind: Role type. + // + // Possible values: + // "KIND_UNSPECIFIED" - Role type is not specified. + // "ROLE" - Kubernetes Role. + // "CLUSTER_ROLE" - Kubernetes ClusterRole. + Kind string `json:"kind,omitempty"` + + // Name: Role name. + Name string `json:"name,omitempty"` + + // Ns: Role namespace. + Ns string `json:"ns,omitempty"` + + // ForceSendFields is a list of field names (e.g. "Kind") 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. "Kind") 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 *Role) MarshalJSON() ([]byte, error) { + type NoMethod Role + raw := NoMethod(*s) + return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) +} + // SecurityCenterSettings: Resource capturing the settings for Security // Center. type SecurityCenterSettings struct { @@ -2735,7 +3094,8 @@ type SecurityCenterSettings struct { // in. The format is `projects/{project_id}`. An empty value disables // logging. This value is only referenced by services that support log // sink. Please refer to the documentation for an updated list of - // compatible services. + // compatible services. This may only be specified for organization + // level onboarding. LogSinkProject string `json:"logSinkProject,omitempty"` // Name: The resource name of the SecurityCenterSettings. Format: @@ -2744,12 +3104,12 @@ type SecurityCenterSettings struct { // projects/{project}/securityCenterSettings Name string `json:"name,omitempty"` - // OnboardingTime: Timestamp of when the customer organization was - // onboarded to SCC. + // OnboardingTime: Output only. Timestamp of when the customer + // organization was onboarded to SCC. OnboardingTime string `json:"onboardingTime,omitempty"` - // OrgServiceAccount: The organization level service account to be used - // for security center components. + // OrgServiceAccount: Output only. The organization level service + // account to be used for security center components. OrgServiceAccount string `json:"orgServiceAccount,omitempty"` // ServerResponse contains the HTTP response code and headers from the @@ -2898,6 +3258,47 @@ func (s *SecurityMarks) MarshalJSON() ([]byte, error) { return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) } +// Subject: Represents a Kubernetes Subject. +type Subject struct { + // Kind: Authentication type for subject. + // + // Possible values: + // "AUTH_TYPE_UNSPECIFIED" - Authentication is not specified. + // "USER" - User with valid certificate. + // "SERVICEACCOUNT" - Users managed by Kubernetes API with credentials + // stored as Secrets. + // "GROUP" - Collection of users. + Kind string `json:"kind,omitempty"` + + // Name: Name for subject. + Name string `json:"name,omitempty"` + + // Ns: Namespace for subject. + Ns string `json:"ns,omitempty"` + + // ForceSendFields is a list of field names (e.g. "Kind") 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. "Kind") 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 *Subject) MarshalJSON() ([]byte, error) { + type NoMethod Subject + raw := NoMethod(*s) + return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) +} + // Subscription: Resource capturing the state of an organization's // subscription. type Subscription struct { diff --git a/storagetransfer/v1/storagetransfer-api.json b/storagetransfer/v1/storagetransfer-api.json index 5550b7ccff4..ea352eb1085 100644 --- a/storagetransfer/v1/storagetransfer-api.json +++ b/storagetransfer/v1/storagetransfer-api.json @@ -600,7 +600,7 @@ } } }, - "revision": "20220511", + "revision": "20220714", "rootUrl": "https://storagetransfer.googleapis.com/", "schemas": { "AgentPool": { @@ -654,6 +654,33 @@ }, "type": "object" }, + "AwsS3CompatibleData": { + "description": "An AwsS3CompatibleData resource.", + "id": "AwsS3CompatibleData", + "properties": { + "bucketName": { + "description": "Required. Specifies the name of the bucket.", + "type": "string" + }, + "endpoint": { + "description": "Required. Specifies the endpoint of the storage service.", + "type": "string" + }, + "path": { + "description": "Specifies the root path to transfer objects. Must be an empty string or full path name that ends with a '/'. This field is treated as an object prefix. As such, it should generally not begin with a '/'.", + "type": "string" + }, + "region": { + "description": "Specifies the region to sign requests with. This can be left blank if requests should be signed with an empty region.", + "type": "string" + }, + "s3Metadata": { + "$ref": "S3CompatibleMetadata", + "description": "A S3 compatible metadata." + } + }, + "type": "object" + }, "AwsS3Data": { "description": "An AwsS3Data resource can be a data source, but not a data sink. In an AwsS3Data resource, an object's name is the S3 object's key name.", "id": "AwsS3Data", @@ -1273,6 +1300,69 @@ }, "type": "object" }, + "S3CompatibleMetadata": { + "description": "S3CompatibleMetadata contains the metadata fields that apply to the basic types of S3-compatible data providers.", + "id": "S3CompatibleMetadata", + "properties": { + "authMethod": { + "description": "Specifies the authentication and authorization method used by the storage service. When not specified, Transfer Service will attempt to determine right auth method to use.", + "enum": [ + "AUTH_METHOD_UNSPECIFIED", + "AUTH_METHOD_AWS_SIGNATURE_V4", + "AUTH_METHOD_AWS_SIGNATURE_V2" + ], + "enumDescriptions": [ + "AuthMethod is not specified.", + "Auth requests with AWS SigV4.", + "Auth requests with AWS SigV2." + ], + "type": "string" + }, + "listApi": { + "description": "The Listing API to use for discovering objects. When not specified, Transfer Service will attempt to determine the right API to use.", + "enum": [ + "LIST_API_UNSPECIFIED", + "LIST_OBJECTS_V2", + "LIST_OBJECTS" + ], + "enumDescriptions": [ + "ListApi is not specified.", + "Perform listing using ListObjectsV2 API.", + "Legacy ListObjects API." + ], + "type": "string" + }, + "protocol": { + "description": "Specifies the network protocol of the agent. When not specified, the default value of NetworkProtocol NETWORK_PROTOCOL_HTTPS is used.", + "enum": [ + "NETWORK_PROTOCOL_UNSPECIFIED", + "NETWORK_PROTOCOL_HTTPS", + "NETWORK_PROTOCOL_HTTP" + ], + "enumDescriptions": [ + "NetworkProtocol is not specified.", + "Perform requests using HTTPS.", + "Not recommended: This sends data in clear-text. This is only appropriate within a closed network or for publicly available data. Perform requests using HTTP." + ], + "type": "string" + }, + "requestModel": { + "description": "Specifies the API request model used to call the storage service. When not specified, the default value of RequestModel REQUEST_MODEL_VIRTUAL_HOSTED_STYLE is used.", + "enum": [ + "REQUEST_MODEL_UNSPECIFIED", + "REQUEST_MODEL_VIRTUAL_HOSTED_STYLE", + "REQUEST_MODEL_PATH_STYLE" + ], + "enumDescriptions": [ + "RequestModel is not specified.", + "Perform requests using Virtual Hosted Style. Example: https://bucket-name.s3.region.amazonaws.com/key-name", + "Perform requests using Path Style. Example: https://s3.region.amazonaws.com/bucket-name/key-name" + ], + "type": "string" + } + }, + "type": "object" + }, "Schedule": { "description": "Transfers can be scheduled to recur or to run just once.", "id": "Schedule", @@ -1635,7 +1725,7 @@ }, "metadataOptions": { "$ref": "MetadataOptions", - "description": "Represents the selected metadata options for a transfer job. This feature is in Preview." + "description": "Represents the selected metadata options for a transfer job." }, "overwriteObjectsAlreadyExistingInSink": { "description": "When to overwrite objects that already exist in the sink. The default is that only objects that are different from the source are ovewritten. If true, all objects in the sink whose name matches an object in the source are overwritten with the source object.", @@ -1664,6 +1754,10 @@ "description": "Configuration for running a transfer.", "id": "TransferSpec", "properties": { + "awsS3CompatibleDataSource": { + "$ref": "AwsS3CompatibleData", + "description": "An AWS S3 compatible data source." + }, "awsS3DataSource": { "$ref": "AwsS3Data", "description": "An AWS S3 data source." diff --git a/storagetransfer/v1/storagetransfer-gen.go b/storagetransfer/v1/storagetransfer-gen.go index 23373aace8b..80d93ad90f4 100644 --- a/storagetransfer/v1/storagetransfer-gen.go +++ b/storagetransfer/v1/storagetransfer-gen.go @@ -285,6 +285,50 @@ func (s *AwsAccessKey) MarshalJSON() ([]byte, error) { return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) } +// AwsS3CompatibleData: An AwsS3CompatibleData resource. +type AwsS3CompatibleData struct { + // BucketName: Required. Specifies the name of the bucket. + BucketName string `json:"bucketName,omitempty"` + + // Endpoint: Required. Specifies the endpoint of the storage service. + Endpoint string `json:"endpoint,omitempty"` + + // Path: Specifies the root path to transfer objects. Must be an empty + // string or full path name that ends with a '/'. This field is treated + // as an object prefix. As such, it should generally not begin with a + // '/'. + Path string `json:"path,omitempty"` + + // Region: Specifies the region to sign requests with. This can be left + // blank if requests should be signed with an empty region. + Region string `json:"region,omitempty"` + + // S3Metadata: A S3 compatible metadata. + S3Metadata *S3CompatibleMetadata `json:"s3Metadata,omitempty"` + + // ForceSendFields is a list of field names (e.g. "BucketName") 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. "BucketName") 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 *AwsS3CompatibleData) MarshalJSON() ([]byte, error) { + type NoMethod AwsS3CompatibleData + raw := NoMethod(*s) + return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) +} + // AwsS3Data: An AwsS3Data resource can be a data source, but not a data // sink. In an AwsS3Data resource, an object's name is the S3 object's // key name. @@ -1420,6 +1464,77 @@ func (s *RunTransferJobRequest) MarshalJSON() ([]byte, error) { return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) } +// S3CompatibleMetadata: S3CompatibleMetadata contains the metadata +// fields that apply to the basic types of S3-compatible data providers. +type S3CompatibleMetadata struct { + // AuthMethod: Specifies the authentication and authorization method + // used by the storage service. When not specified, Transfer Service + // will attempt to determine right auth method to use. + // + // Possible values: + // "AUTH_METHOD_UNSPECIFIED" - AuthMethod is not specified. + // "AUTH_METHOD_AWS_SIGNATURE_V4" - Auth requests with AWS SigV4. + // "AUTH_METHOD_AWS_SIGNATURE_V2" - Auth requests with AWS SigV2. + AuthMethod string `json:"authMethod,omitempty"` + + // ListApi: The Listing API to use for discovering objects. When not + // specified, Transfer Service will attempt to determine the right API + // to use. + // + // Possible values: + // "LIST_API_UNSPECIFIED" - ListApi is not specified. + // "LIST_OBJECTS_V2" - Perform listing using ListObjectsV2 API. + // "LIST_OBJECTS" - Legacy ListObjects API. + ListApi string `json:"listApi,omitempty"` + + // Protocol: Specifies the network protocol of the agent. When not + // specified, the default value of NetworkProtocol + // NETWORK_PROTOCOL_HTTPS is used. + // + // Possible values: + // "NETWORK_PROTOCOL_UNSPECIFIED" - NetworkProtocol is not specified. + // "NETWORK_PROTOCOL_HTTPS" - Perform requests using HTTPS. + // "NETWORK_PROTOCOL_HTTP" - Not recommended: This sends data in + // clear-text. This is only appropriate within a closed network or for + // publicly available data. Perform requests using HTTP. + Protocol string `json:"protocol,omitempty"` + + // RequestModel: Specifies the API request model used to call the + // storage service. When not specified, the default value of + // RequestModel REQUEST_MODEL_VIRTUAL_HOSTED_STYLE is used. + // + // Possible values: + // "REQUEST_MODEL_UNSPECIFIED" - RequestModel is not specified. + // "REQUEST_MODEL_VIRTUAL_HOSTED_STYLE" - Perform requests using + // Virtual Hosted Style. Example: + // https://bucket-name.s3.region.amazonaws.com/key-name + // "REQUEST_MODEL_PATH_STYLE" - Perform requests using Path Style. + // Example: https://s3.region.amazonaws.com/bucket-name/key-name + RequestModel string `json:"requestModel,omitempty"` + + // ForceSendFields is a list of field names (e.g. "AuthMethod") 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. "AuthMethod") 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 *S3CompatibleMetadata) MarshalJSON() ([]byte, error) { + type NoMethod S3CompatibleMetadata + raw := NoMethod(*s) + return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) +} + // Schedule: Transfers can be scheduled to recur or to run just once. type Schedule struct { // EndTimeOfDay: The time in UTC that no further transfer operations are @@ -1916,7 +2031,7 @@ type TransferOptions struct { DeleteObjectsUniqueInSink bool `json:"deleteObjectsUniqueInSink,omitempty"` // MetadataOptions: Represents the selected metadata options for a - // transfer job. This feature is in Preview. + // transfer job. MetadataOptions *MetadataOptions `json:"metadataOptions,omitempty"` // OverwriteObjectsAlreadyExistingInSink: When to overwrite objects that @@ -1969,6 +2084,9 @@ func (s *TransferOptions) MarshalJSON() ([]byte, error) { // TransferSpec: Configuration for running a transfer. type TransferSpec struct { + // AwsS3CompatibleDataSource: An AWS S3 compatible data source. + AwsS3CompatibleDataSource *AwsS3CompatibleData `json:"awsS3CompatibleDataSource,omitempty"` + // AwsS3DataSource: An AWS S3 data source. AwsS3DataSource *AwsS3Data `json:"awsS3DataSource,omitempty"` @@ -2020,21 +2138,22 @@ type TransferSpec struct { // error. TransferOptions *TransferOptions `json:"transferOptions,omitempty"` - // ForceSendFields is a list of field names (e.g. "AwsS3DataSource") to - // unconditionally include in API requests. By default, fields with - // empty or default values are omitted from API requests. However, any - // non-pointer, non-interface field appearing in ForceSendFields will be - // sent to the server regardless of whether the field is empty or not. - // This may be used to include empty fields in Patch requests. + // ForceSendFields is a list of field names (e.g. + // "AwsS3CompatibleDataSource") 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. "AwsS3DataSource") 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. + // "AwsS3CompatibleDataSource") to include in API requests with the JSON + // null value. By default, fields with empty values are omitted from API + // requests. However, any field with an empty value appearing in + // NullFields will be sent to the server as null. It is an error if a + // field in this list has a non-empty value. This may be used to include + // null fields in Patch requests. NullFields []string `json:"-"` } diff --git a/tpu/v1/tpu-api.json b/tpu/v1/tpu-api.json index 345816125a7..16b700e9ef6 100644 --- a/tpu/v1/tpu-api.json +++ b/tpu/v1/tpu-api.json @@ -659,7 +659,7 @@ } } }, - "revision": "20220412", + "revision": "20220714", "rootUrl": "https://tpu.googleapis.com/", "schemas": { "AcceleratorType": { @@ -861,7 +861,7 @@ "V2_ALPHA1" ], "enumDescriptions": [ - "API version is unknown.", + "LINT.IfChange API version is unknown.", "TPU API V1Alpha1 version.", "TPU API V1 version.", "TPU API V2Alpha1 version." @@ -969,7 +969,7 @@ "UNHIDING" ], "enumDescriptions": [ - "TPU node state is not known/set.", + "LINT.IfChange TPU node state is not known/set.", "TPU node is being created.", "TPU node has been created.", "TPU node is restarting.", @@ -983,7 +983,7 @@ "TPU node has been terminated due to maintenance or has reached the end of its life cycle (for preemptible nodes).", "TPU node is currently hiding.", "TPU node has been hidden.", - "TPU node is currently unhiding." + "TPU node is currently unhiding. LINT.ThenChange(//depot/google3/java/com/google/cloud/boq/clientapi/tpu/api/gce_tpu.proto)" ], "readOnly": true, "type": "string" diff --git a/tpu/v1/tpu-gen.go b/tpu/v1/tpu-gen.go index 9aba5ded5b3..8e852e4966d 100644 --- a/tpu/v1/tpu-gen.go +++ b/tpu/v1/tpu-gen.go @@ -533,7 +533,7 @@ type Node struct { // ApiVersion: Output only. The API version that created this Node. // // Possible values: - // "API_VERSION_UNSPECIFIED" - API version is unknown. + // "API_VERSION_UNSPECIFIED" - LINT.IfChange API version is unknown. // "V1_ALPHA1" - TPU API V1Alpha1 version. // "V1" - TPU API V1 version. // "V2_ALPHA1" - TPU API V2Alpha1 version. @@ -612,7 +612,8 @@ type Node struct { // State: Output only. The current state for the TPU Node. // // Possible values: - // "STATE_UNSPECIFIED" - TPU node state is not known/set. + // "STATE_UNSPECIFIED" - LINT.IfChange TPU node state is not + // known/set. // "CREATING" - TPU node is being created. // "READY" - TPU node has been created. // "RESTARTING" - TPU node is restarting. @@ -630,6 +631,8 @@ type Node struct { // "HIDING" - TPU node is currently hiding. // "HIDDEN" - TPU node has been hidden. // "UNHIDING" - TPU node is currently unhiding. + // LINT.ThenChange(//depot/google3/java/com/google/cloud/boq/clientapi/tp + // u/api/gce_tpu.proto) State string `json:"state,omitempty"` // Symptoms: Output only. The Symptoms that have occurred to the TPU diff --git a/tpu/v1alpha1/tpu-api.json b/tpu/v1alpha1/tpu-api.json index 5d9598451b1..2439f9b90cf 100644 --- a/tpu/v1alpha1/tpu-api.json +++ b/tpu/v1alpha1/tpu-api.json @@ -669,7 +669,7 @@ } } }, - "revision": "20220412", + "revision": "20220714", "rootUrl": "https://tpu.googleapis.com/", "schemas": { "AcceleratorType": { @@ -871,7 +871,7 @@ "V2_ALPHA1" ], "enumDescriptions": [ - "API version is unknown.", + "LINT.IfChange API version is unknown.", "TPU API V1Alpha1 version.", "TPU API V1 version.", "TPU API V2Alpha1 version." @@ -979,7 +979,7 @@ "UNHIDING" ], "enumDescriptions": [ - "TPU node state is not known/set.", + "LINT.IfChange TPU node state is not known/set.", "TPU node is being created.", "TPU node has been created.", "TPU node is restarting.", @@ -993,7 +993,7 @@ "TPU node has been terminated due to maintenance or has reached the end of its life cycle (for preemptible nodes).", "TPU node is currently hiding.", "TPU node has been hidden.", - "TPU node is currently unhiding." + "TPU node is currently unhiding. LINT.ThenChange(//depot/google3/java/com/google/cloud/boq/clientapi/tpu/api/gce_tpu.proto)" ], "readOnly": true, "type": "string" diff --git a/tpu/v1alpha1/tpu-gen.go b/tpu/v1alpha1/tpu-gen.go index 3c8181db5f5..25437abf6d1 100644 --- a/tpu/v1alpha1/tpu-gen.go +++ b/tpu/v1alpha1/tpu-gen.go @@ -533,7 +533,7 @@ type Node struct { // ApiVersion: Output only. The API version that created this Node. // // Possible values: - // "API_VERSION_UNSPECIFIED" - API version is unknown. + // "API_VERSION_UNSPECIFIED" - LINT.IfChange API version is unknown. // "V1_ALPHA1" - TPU API V1Alpha1 version. // "V1" - TPU API V1 version. // "V2_ALPHA1" - TPU API V2Alpha1 version. @@ -612,7 +612,8 @@ type Node struct { // State: Output only. The current state for the TPU Node. // // Possible values: - // "STATE_UNSPECIFIED" - TPU node state is not known/set. + // "STATE_UNSPECIFIED" - LINT.IfChange TPU node state is not + // known/set. // "CREATING" - TPU node is being created. // "READY" - TPU node has been created. // "RESTARTING" - TPU node is restarting. @@ -630,6 +631,8 @@ type Node struct { // "HIDING" - TPU node is currently hiding. // "HIDDEN" - TPU node has been hidden. // "UNHIDING" - TPU node is currently unhiding. + // LINT.ThenChange(//depot/google3/java/com/google/cloud/boq/clientapi/tp + // u/api/gce_tpu.proto) State string `json:"state,omitempty"` // Symptoms: Output only. The Symptoms that have occurred to the TPU diff --git a/tpu/v2alpha1/tpu-api.json b/tpu/v2alpha1/tpu-api.json index b126aa0a155..b42f5f98eb5 100644 --- a/tpu/v2alpha1/tpu-api.json +++ b/tpu/v2alpha1/tpu-api.json @@ -759,7 +759,7 @@ } } }, - "revision": "20220629", + "revision": "20220714", "rootUrl": "https://tpu.googleapis.com/", "schemas": { "AcceleratorType": { @@ -1122,7 +1122,7 @@ "V2_ALPHA1" ], "enumDescriptions": [ - "API version is unknown.", + "LINT.IfChange API version is unknown.", "TPU API V1Alpha1 version.", "TPU API V1 version.", "TPU API V2Alpha1 version." @@ -1243,7 +1243,7 @@ "UNHIDING" ], "enumDescriptions": [ - "TPU node state is not known/set.", + "LINT.IfChange TPU node state is not known/set.", "TPU node is being created.", "TPU node has been created.", "TPU node is restarting.", @@ -1257,7 +1257,7 @@ "TPU node has been terminated due to maintenance or has reached the end of its life cycle (for preemptible nodes).", "TPU node is currently hiding.", "TPU node has been hidden.", - "TPU node is currently unhiding." + "TPU node is currently unhiding. LINT.ThenChange(//depot/google3/java/com/google/cloud/boq/clientapi/tpu/api/gce_tpu.proto)" ], "readOnly": true, "type": "string" diff --git a/tpu/v2alpha1/tpu-gen.go b/tpu/v2alpha1/tpu-gen.go index 96694af1837..ab1b356f2ed 100644 --- a/tpu/v2alpha1/tpu-gen.go +++ b/tpu/v2alpha1/tpu-gen.go @@ -847,7 +847,7 @@ type Node struct { // ApiVersion: Output only. The API version that created this Node. // // Possible values: - // "API_VERSION_UNSPECIFIED" - API version is unknown. + // "API_VERSION_UNSPECIFIED" - LINT.IfChange API version is unknown. // "V1_ALPHA1" - TPU API V1Alpha1 version. // "V1" - TPU API V1 version. // "V2_ALPHA1" - TPU API V2Alpha1 version. @@ -924,7 +924,8 @@ type Node struct { // State: Output only. The current state for the TPU Node. // // Possible values: - // "STATE_UNSPECIFIED" - TPU node state is not known/set. + // "STATE_UNSPECIFIED" - LINT.IfChange TPU node state is not + // known/set. // "CREATING" - TPU node is being created. // "READY" - TPU node has been created. // "RESTARTING" - TPU node is restarting. @@ -942,6 +943,8 @@ type Node struct { // "HIDING" - TPU node is currently hiding. // "HIDDEN" - TPU node has been hidden. // "UNHIDING" - TPU node is currently unhiding. + // LINT.ThenChange(//depot/google3/java/com/google/cloud/boq/clientapi/tp + // u/api/gce_tpu.proto) State string `json:"state,omitempty"` // Symptoms: Output only. The Symptoms that have occurred to the TPU