1// Copyright 2020 Google LLC. 2// Use of this source code is governed by a BSD-style 3// license that can be found in the LICENSE file. 4 5// Code generated file. DO NOT EDIT. 6 7// Package cloudasset provides access to the Cloud Asset API. 8// 9// For product documentation, see: https://cloud.google.com/asset-inventory/docs/quickstart 10// 11// Creating a client 12// 13// Usage example: 14// 15// import "google.golang.org/api/cloudasset/v1" 16// ... 17// ctx := context.Background() 18// cloudassetService, err := cloudasset.NewService(ctx) 19// 20// In this example, Google Application Default Credentials are used for authentication. 21// 22// For information on how to create and obtain Application Default Credentials, see https://developers.google.com/identity/protocols/application-default-credentials. 23// 24// Other authentication options 25// 26// To use an API key for authentication (note: some APIs do not support API keys), use option.WithAPIKey: 27// 28// cloudassetService, err := cloudasset.NewService(ctx, option.WithAPIKey("AIza...")) 29// 30// To use an OAuth token (e.g., a user token obtained via a three-legged OAuth flow), use option.WithTokenSource: 31// 32// config := &oauth2.Config{...} 33// // ... 34// token, err := config.Exchange(ctx, ...) 35// cloudassetService, err := cloudasset.NewService(ctx, option.WithTokenSource(config.TokenSource(ctx, token))) 36// 37// See https://godoc.org/google.golang.org/api/option/ for details on options. 38package cloudasset // import "google.golang.org/api/cloudasset/v1" 39 40import ( 41 "bytes" 42 "context" 43 "encoding/json" 44 "errors" 45 "fmt" 46 "io" 47 "net/http" 48 "net/url" 49 "strconv" 50 "strings" 51 52 googleapi "google.golang.org/api/googleapi" 53 gensupport "google.golang.org/api/internal/gensupport" 54 option "google.golang.org/api/option" 55 internaloption "google.golang.org/api/option/internaloption" 56 htransport "google.golang.org/api/transport/http" 57) 58 59// Always reference these packages, just in case the auto-generated code 60// below doesn't. 61var _ = bytes.NewBuffer 62var _ = strconv.Itoa 63var _ = fmt.Sprintf 64var _ = json.NewDecoder 65var _ = io.Copy 66var _ = url.Parse 67var _ = gensupport.MarshalJSON 68var _ = googleapi.Version 69var _ = errors.New 70var _ = strings.Replace 71var _ = context.Canceled 72var _ = internaloption.WithDefaultEndpoint 73 74const apiId = "cloudasset:v1" 75const apiName = "cloudasset" 76const apiVersion = "v1" 77const basePath = "https://cloudasset.googleapis.com/" 78 79// OAuth2 scopes used by this API. 80const ( 81 // View and manage your data across Google Cloud Platform services 82 CloudPlatformScope = "https://www.googleapis.com/auth/cloud-platform" 83) 84 85// NewService creates a new Service. 86func NewService(ctx context.Context, opts ...option.ClientOption) (*Service, error) { 87 scopesOption := option.WithScopes( 88 "https://www.googleapis.com/auth/cloud-platform", 89 ) 90 // NOTE: prepend, so we don't override user-specified scopes. 91 opts = append([]option.ClientOption{scopesOption}, opts...) 92 opts = append(opts, internaloption.WithDefaultEndpoint(basePath)) 93 client, endpoint, err := htransport.NewClient(ctx, opts...) 94 if err != nil { 95 return nil, err 96 } 97 s, err := New(client) 98 if err != nil { 99 return nil, err 100 } 101 if endpoint != "" { 102 s.BasePath = endpoint 103 } 104 return s, nil 105} 106 107// New creates a new Service. It uses the provided http.Client for requests. 108// 109// Deprecated: please use NewService instead. 110// To provide a custom HTTP client, use option.WithHTTPClient. 111// If you are using google.golang.org/api/googleapis/transport.APIKey, use option.WithAPIKey with NewService instead. 112func New(client *http.Client) (*Service, error) { 113 if client == nil { 114 return nil, errors.New("client is nil") 115 } 116 s := &Service{client: client, BasePath: basePath} 117 s.Feeds = NewFeedsService(s) 118 s.Operations = NewOperationsService(s) 119 s.V1 = NewV1Service(s) 120 return s, nil 121} 122 123type Service struct { 124 client *http.Client 125 BasePath string // API endpoint base URL 126 UserAgent string // optional additional User-Agent fragment 127 128 Feeds *FeedsService 129 130 Operations *OperationsService 131 132 V1 *V1Service 133} 134 135func (s *Service) userAgent() string { 136 if s.UserAgent == "" { 137 return googleapi.UserAgent 138 } 139 return googleapi.UserAgent + " " + s.UserAgent 140} 141 142func NewFeedsService(s *Service) *FeedsService { 143 rs := &FeedsService{s: s} 144 return rs 145} 146 147type FeedsService struct { 148 s *Service 149} 150 151func NewOperationsService(s *Service) *OperationsService { 152 rs := &OperationsService{s: s} 153 return rs 154} 155 156type OperationsService struct { 157 s *Service 158} 159 160func NewV1Service(s *Service) *V1Service { 161 rs := &V1Service{s: s} 162 return rs 163} 164 165type V1Service struct { 166 s *Service 167} 168 169// Asset: An asset in Google Cloud. An asset can be any resource in the 170// Google 171// Cloud 172// [resource 173// hierarchy](https://cloud.google.com/resource-manager/d 174// ocs/cloud-platform-resource-hierarchy), 175// a resource outside the Google Cloud resource hierarchy (such as 176// Google 177// Kubernetes Engine clusters and objects), or a Cloud IAM policy. 178type Asset struct { 179 AccessLevel *GoogleIdentityAccesscontextmanagerV1AccessLevel `json:"accessLevel,omitempty"` 180 181 AccessPolicy *GoogleIdentityAccesscontextmanagerV1AccessPolicy `json:"accessPolicy,omitempty"` 182 183 // Ancestors: The ancestry path of an asset in Google Cloud 184 // [resource 185 // hierarchy](https://cloud.google.com/resource-manager/docs/cl 186 // oud-platform-resource-hierarchy), 187 // represented as a list of relative resource names. An ancestry path 188 // starts 189 // with the closest ancestor in the hierarchy and ends at root. If the 190 // asset 191 // is a project, folder, or organization, the ancestry path starts from 192 // the 193 // asset itself. 194 // 195 // For example: `["projects/123456789", "folders/5432", 196 // "organizations/1234"]` 197 Ancestors []string `json:"ancestors,omitempty"` 198 199 // AssetType: The type of the asset. For example: 200 // "compute.googleapis.com/Disk" 201 // 202 // See [Supported 203 // asset 204 // types](https://cloud.google.com/asset-inventory/docs/supported-a 205 // sset-types) 206 // for more information. 207 AssetType string `json:"assetType,omitempty"` 208 209 // IamPolicy: A representation of the Cloud IAM policy set on a Google 210 // Cloud resource. 211 // There can be a maximum of one Cloud IAM policy set on any given 212 // resource. 213 // In addition, Cloud IAM policies inherit their granted access scope 214 // from any 215 // policies set on parent resources in the resource hierarchy. 216 // Therefore, the 217 // effectively policy is the union of both the policy set on this 218 // resource 219 // and each policy set on all of the resource's ancestry resource levels 220 // in 221 // the hierarchy. See 222 // [this topic](https://cloud.google.com/iam/docs/policies#inheritance) 223 // for 224 // more information. 225 IamPolicy *Policy `json:"iamPolicy,omitempty"` 226 227 // Name: The full name of the asset. For 228 // example: 229 // "//compute.googleapis.com/projects/my_project_123/zones/zone1 230 // /instances/instance1" 231 // 232 // See 233 // [Resource 234 // names](https://cloud.google.com/apis/design/resource_names#f 235 // ull_resource_name) 236 // for more information. 237 Name string `json:"name,omitempty"` 238 239 // OrgPolicy: A representation of an 240 // [organization 241 // policy](https://cloud.google.com/resource-manager/docs/o 242 // rganization-policy/overview#organization_policy). 243 // There can be more than one organization policy with different 244 // constraints 245 // set on a given resource. 246 OrgPolicy []*GoogleCloudOrgpolicyV1Policy `json:"orgPolicy,omitempty"` 247 248 // Resource: A representation of the resource. 249 Resource *Resource `json:"resource,omitempty"` 250 251 ServicePerimeter *GoogleIdentityAccesscontextmanagerV1ServicePerimeter `json:"servicePerimeter,omitempty"` 252 253 // ForceSendFields is a list of field names (e.g. "AccessLevel") to 254 // unconditionally include in API requests. By default, fields with 255 // empty values are omitted from API requests. However, any non-pointer, 256 // non-interface field appearing in ForceSendFields will be sent to the 257 // server regardless of whether the field is empty or not. This may be 258 // used to include empty fields in Patch requests. 259 ForceSendFields []string `json:"-"` 260 261 // NullFields is a list of field names (e.g. "AccessLevel") to include 262 // in API requests with the JSON null value. By default, fields with 263 // empty values are omitted from API requests. However, any field with 264 // an empty value appearing in NullFields will be sent to the server as 265 // null. It is an error if a field in this list has a non-empty value. 266 // This may be used to include null fields in Patch requests. 267 NullFields []string `json:"-"` 268} 269 270func (s *Asset) MarshalJSON() ([]byte, error) { 271 type NoMethod Asset 272 raw := NoMethod(*s) 273 return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) 274} 275 276// AuditConfig: Specifies the audit configuration for a service. 277// The configuration determines which permission types are logged, and 278// what 279// identities, if any, are exempted from logging. 280// An AuditConfig must have one or more AuditLogConfigs. 281// 282// If there are AuditConfigs for both `allServices` and a specific 283// service, 284// the union of the two AuditConfigs is used for that service: the 285// log_types 286// specified in each AuditConfig are enabled, and the exempted_members 287// in each 288// AuditLogConfig are exempted. 289// 290// Example Policy with multiple AuditConfigs: 291// 292// { 293// "audit_configs": [ 294// { 295// "service": "allServices" 296// "audit_log_configs": [ 297// { 298// "log_type": "DATA_READ", 299// "exempted_members": [ 300// "user:jose@example.com" 301// ] 302// }, 303// { 304// "log_type": "DATA_WRITE", 305// }, 306// { 307// "log_type": "ADMIN_READ", 308// } 309// ] 310// }, 311// { 312// "service": "sampleservice.googleapis.com" 313// "audit_log_configs": [ 314// { 315// "log_type": "DATA_READ", 316// }, 317// { 318// "log_type": "DATA_WRITE", 319// "exempted_members": [ 320// "user:aliya@example.com" 321// ] 322// } 323// ] 324// } 325// ] 326// } 327// 328// For sampleservice, this policy enables DATA_READ, DATA_WRITE and 329// ADMIN_READ 330// logging. It also exempts jose@example.com from DATA_READ logging, 331// and 332// aliya@example.com from DATA_WRITE logging. 333type AuditConfig struct { 334 // AuditLogConfigs: The configuration for logging of each type of 335 // permission. 336 AuditLogConfigs []*AuditLogConfig `json:"auditLogConfigs,omitempty"` 337 338 // Service: Specifies a service that will be enabled for audit 339 // logging. 340 // For example, `storage.googleapis.com`, 341 // `cloudsql.googleapis.com`. 342 // `allServices` is a special value that covers all services. 343 Service string `json:"service,omitempty"` 344 345 // ForceSendFields is a list of field names (e.g. "AuditLogConfigs") to 346 // unconditionally include in API requests. By default, fields with 347 // empty values are omitted from API requests. However, any non-pointer, 348 // non-interface field appearing in ForceSendFields will be sent to the 349 // server regardless of whether the field is empty or not. This may be 350 // used to include empty fields in Patch requests. 351 ForceSendFields []string `json:"-"` 352 353 // NullFields is a list of field names (e.g. "AuditLogConfigs") to 354 // include in API requests with the JSON null value. By default, fields 355 // with empty values are omitted from API requests. However, any field 356 // with an empty value appearing in NullFields will be sent to the 357 // server as null. It is an error if a field in this list has a 358 // non-empty value. This may be used to include null fields in Patch 359 // requests. 360 NullFields []string `json:"-"` 361} 362 363func (s *AuditConfig) MarshalJSON() ([]byte, error) { 364 type NoMethod AuditConfig 365 raw := NoMethod(*s) 366 return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) 367} 368 369// AuditLogConfig: Provides the configuration for logging a type of 370// permissions. 371// Example: 372// 373// { 374// "audit_log_configs": [ 375// { 376// "log_type": "DATA_READ", 377// "exempted_members": [ 378// "user:jose@example.com" 379// ] 380// }, 381// { 382// "log_type": "DATA_WRITE", 383// } 384// ] 385// } 386// 387// This enables 'DATA_READ' and 'DATA_WRITE' logging, while 388// exempting 389// jose@example.com from DATA_READ logging. 390type AuditLogConfig struct { 391 // ExemptedMembers: Specifies the identities that do not cause logging 392 // for this type of 393 // permission. 394 // Follows the same format of Binding.members. 395 ExemptedMembers []string `json:"exemptedMembers,omitempty"` 396 397 // LogType: The log type that this config enables. 398 // 399 // Possible values: 400 // "LOG_TYPE_UNSPECIFIED" - Default case. Should never be this. 401 // "ADMIN_READ" - Admin reads. Example: CloudIAM getIamPolicy 402 // "DATA_WRITE" - Data writes. Example: CloudSQL Users create 403 // "DATA_READ" - Data reads. Example: CloudSQL Users list 404 LogType string `json:"logType,omitempty"` 405 406 // ForceSendFields is a list of field names (e.g. "ExemptedMembers") to 407 // unconditionally include in API requests. By default, fields with 408 // empty values are omitted from API requests. However, any non-pointer, 409 // non-interface field appearing in ForceSendFields will be sent to the 410 // server regardless of whether the field is empty or not. This may be 411 // used to include empty fields in Patch requests. 412 ForceSendFields []string `json:"-"` 413 414 // NullFields is a list of field names (e.g. "ExemptedMembers") to 415 // include in API requests with the JSON null value. By default, fields 416 // with empty values are omitted from API requests. However, any field 417 // with an empty value appearing in NullFields will be sent to the 418 // server as null. It is an error if a field in this list has a 419 // non-empty value. This may be used to include null fields in Patch 420 // requests. 421 NullFields []string `json:"-"` 422} 423 424func (s *AuditLogConfig) MarshalJSON() ([]byte, error) { 425 type NoMethod AuditLogConfig 426 raw := NoMethod(*s) 427 return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) 428} 429 430// BatchGetAssetsHistoryResponse: Batch get assets history response. 431type BatchGetAssetsHistoryResponse struct { 432 // Assets: A list of assets with valid time windows. 433 Assets []*TemporalAsset `json:"assets,omitempty"` 434 435 // ServerResponse contains the HTTP response code and headers from the 436 // server. 437 googleapi.ServerResponse `json:"-"` 438 439 // ForceSendFields is a list of field names (e.g. "Assets") to 440 // unconditionally include in API requests. By default, fields with 441 // empty values are omitted from API requests. However, any non-pointer, 442 // non-interface field appearing in ForceSendFields will be sent to the 443 // server regardless of whether the field is empty or not. This may be 444 // used to include empty fields in Patch requests. 445 ForceSendFields []string `json:"-"` 446 447 // NullFields is a list of field names (e.g. "Assets") to include in API 448 // requests with the JSON null value. By default, fields with empty 449 // values are omitted from API requests. However, any field with an 450 // empty value appearing in NullFields will be sent to the server as 451 // null. It is an error if a field in this list has a non-empty value. 452 // This may be used to include null fields in Patch requests. 453 NullFields []string `json:"-"` 454} 455 456func (s *BatchGetAssetsHistoryResponse) MarshalJSON() ([]byte, error) { 457 type NoMethod BatchGetAssetsHistoryResponse 458 raw := NoMethod(*s) 459 return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) 460} 461 462// BigQueryDestination: A BigQuery destination. 463type BigQueryDestination struct { 464 // Dataset: Required. The BigQuery dataset in 465 // format 466 // "projects/projectId/datasets/datasetId", to which the snapshot 467 // result 468 // should be exported. If this dataset does not exist, the export call 469 // returns 470 // an INVALID_ARGUMENT error. 471 Dataset string `json:"dataset,omitempty"` 472 473 // Force: If the destination table already exists and this flag is 474 // `TRUE`, the 475 // table will be overwritten by the contents of assets snapshot. If the 476 // flag 477 // is `FALSE` or unset and the destination table already exists, the 478 // export 479 // call returns an INVALID_ARGUMEMT error. 480 Force bool `json:"force,omitempty"` 481 482 // Table: Required. The BigQuery table to which the snapshot result 483 // should be 484 // written. If this table does not exist, a new table with the given 485 // name 486 // will be created. 487 Table string `json:"table,omitempty"` 488 489 // ForceSendFields is a list of field names (e.g. "Dataset") to 490 // unconditionally include in API requests. By default, fields with 491 // empty values are omitted from API requests. However, any non-pointer, 492 // non-interface field appearing in ForceSendFields will be sent to the 493 // server regardless of whether the field is empty or not. This may be 494 // used to include empty fields in Patch requests. 495 ForceSendFields []string `json:"-"` 496 497 // NullFields is a list of field names (e.g. "Dataset") to include in 498 // API requests with the JSON null value. By default, fields with empty 499 // values are omitted from API requests. However, any field with an 500 // empty value appearing in NullFields will be sent to the server as 501 // null. It is an error if a field in this list has a non-empty value. 502 // This may be used to include null fields in Patch requests. 503 NullFields []string `json:"-"` 504} 505 506func (s *BigQueryDestination) MarshalJSON() ([]byte, error) { 507 type NoMethod BigQueryDestination 508 raw := NoMethod(*s) 509 return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) 510} 511 512// Binding: Associates `members` with a `role`. 513type Binding struct { 514 // Condition: The condition that is associated with this binding. 515 // NOTE: An unsatisfied condition will not allow user access via 516 // current 517 // binding. Different bindings, including their conditions, are 518 // examined 519 // independently. 520 Condition *Expr `json:"condition,omitempty"` 521 522 // Members: Specifies the identities requesting access for a Cloud 523 // Platform resource. 524 // `members` can have the following values: 525 // 526 // * `allUsers`: A special identifier that represents anyone who is 527 // on the internet; with or without a Google account. 528 // 529 // * `allAuthenticatedUsers`: A special identifier that represents 530 // anyone 531 // who is authenticated with a Google account or a service 532 // account. 533 // 534 // * `user:{emailid}`: An email address that represents a specific 535 // Google 536 // account. For example, `alice@example.com` . 537 // 538 // 539 // * `serviceAccount:{emailid}`: An email address that represents a 540 // service 541 // account. For example, 542 // `my-other-app@appspot.gserviceaccount.com`. 543 // 544 // * `group:{emailid}`: An email address that represents a Google 545 // group. 546 // For example, `admins@example.com`. 547 // 548 // * `deleted:user:{emailid}?uid={uniqueid}`: An email address (plus 549 // unique 550 // identifier) representing a user that has been recently deleted. 551 // For 552 // example, `alice@example.com?uid=123456789012345678901`. If the 553 // user is 554 // recovered, this value reverts to `user:{emailid}` and the 555 // recovered user 556 // retains the role in the binding. 557 // 558 // * `deleted:serviceAccount:{emailid}?uid={uniqueid}`: An email address 559 // (plus 560 // unique identifier) representing a service account that has been 561 // recently 562 // deleted. For example, 563 // 564 // `my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901`. 565 // 566 // If the service account is undeleted, this value reverts to 567 // `serviceAccount:{emailid}` and the undeleted service account 568 // retains the 569 // role in the binding. 570 // 571 // * `deleted:group:{emailid}?uid={uniqueid}`: An email address (plus 572 // unique 573 // identifier) representing a Google group that has been recently 574 // deleted. For example, 575 // `admins@example.com?uid=123456789012345678901`. If 576 // the group is recovered, this value reverts to `group:{emailid}` 577 // and the 578 // recovered group retains the role in the binding. 579 // 580 // 581 // * `domain:{domain}`: The G Suite domain (primary) that represents all 582 // the 583 // users of that domain. For example, `google.com` or 584 // `example.com`. 585 // 586 // 587 Members []string `json:"members,omitempty"` 588 589 // Role: Role that is assigned to `members`. 590 // For example, `roles/viewer`, `roles/editor`, or `roles/owner`. 591 Role string `json:"role,omitempty"` 592 593 // ForceSendFields is a list of field names (e.g. "Condition") to 594 // unconditionally include in API requests. By default, fields with 595 // empty values are omitted from API requests. However, any non-pointer, 596 // non-interface field appearing in ForceSendFields will be sent to the 597 // server regardless of whether the field is empty or not. This may be 598 // used to include empty fields in Patch requests. 599 ForceSendFields []string `json:"-"` 600 601 // NullFields is a list of field names (e.g. "Condition") to include in 602 // API requests with the JSON null value. By default, fields with empty 603 // values are omitted from API requests. However, any field with an 604 // empty value appearing in NullFields will be sent to the server as 605 // null. It is an error if a field in this list has a non-empty value. 606 // This may be used to include null fields in Patch requests. 607 NullFields []string `json:"-"` 608} 609 610func (s *Binding) MarshalJSON() ([]byte, error) { 611 type NoMethod Binding 612 raw := NoMethod(*s) 613 return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) 614} 615 616// CreateFeedRequest: Create asset feed request. 617type CreateFeedRequest struct { 618 // Feed: Required. The feed details. The field `name` must be empty and 619 // it will be generated 620 // in the format 621 // of: 622 // projects/project_number/feeds/feed_id 623 // folders/folder_number/feeds/ 624 // feed_id 625 // organizations/organization_number/feeds/feed_id 626 Feed *Feed `json:"feed,omitempty"` 627 628 // FeedId: Required. This is the client-assigned asset feed identifier 629 // and it needs to 630 // be unique under a specific parent project/folder/organization. 631 FeedId string `json:"feedId,omitempty"` 632 633 // ForceSendFields is a list of field names (e.g. "Feed") to 634 // unconditionally include in API requests. By default, fields with 635 // empty values are omitted from API requests. However, any non-pointer, 636 // non-interface field appearing in ForceSendFields will be sent to the 637 // server regardless of whether the field is empty or not. This may be 638 // used to include empty fields in Patch requests. 639 ForceSendFields []string `json:"-"` 640 641 // NullFields is a list of field names (e.g. "Feed") to include in API 642 // requests with the JSON null value. By default, fields with empty 643 // values are omitted from API requests. However, any field with an 644 // empty value appearing in NullFields will be sent to the server as 645 // null. It is an error if a field in this list has a non-empty value. 646 // This may be used to include null fields in Patch requests. 647 NullFields []string `json:"-"` 648} 649 650func (s *CreateFeedRequest) MarshalJSON() ([]byte, error) { 651 type NoMethod CreateFeedRequest 652 raw := NoMethod(*s) 653 return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) 654} 655 656// Empty: A generic empty message that you can re-use to avoid defining 657// duplicated 658// empty messages in your APIs. A typical example is to use it as the 659// request 660// or the response type of an API method. For instance: 661// 662// service Foo { 663// rpc Bar(google.protobuf.Empty) returns 664// (google.protobuf.Empty); 665// } 666// 667// The JSON representation for `Empty` is empty JSON object `{}`. 668type Empty struct { 669 // ServerResponse contains the HTTP response code and headers from the 670 // server. 671 googleapi.ServerResponse `json:"-"` 672} 673 674// ExportAssetsRequest: Export asset request. 675type ExportAssetsRequest struct { 676 // AssetTypes: A list of asset types of which to take a snapshot for. 677 // For example: 678 // "compute.googleapis.com/Disk". If specified, only matching assets 679 // will be 680 // returned. See [Introduction to Cloud 681 // Asset 682 // Inventory](https://cloud.google.com/asset-inventory/docs/overvie 683 // w) 684 // for all supported asset types. 685 AssetTypes []string `json:"assetTypes,omitempty"` 686 687 // ContentType: Asset content type. If not specified, no content but the 688 // asset name will be 689 // returned. 690 // 691 // Possible values: 692 // "CONTENT_TYPE_UNSPECIFIED" - Unspecified content type. 693 // "RESOURCE" - Resource metadata. 694 // "IAM_POLICY" - The actual IAM policy set on a resource. 695 // "ORG_POLICY" - The Cloud Organization Policy set on an asset. 696 // "ACCESS_POLICY" - The Cloud Access context mananger Policy set on 697 // an asset. 698 ContentType string `json:"contentType,omitempty"` 699 700 // OutputConfig: Required. Output configuration indicating where the 701 // results will be output 702 // to. All results will be in newline delimited JSON format. 703 OutputConfig *OutputConfig `json:"outputConfig,omitempty"` 704 705 // ReadTime: Timestamp to take an asset snapshot. This can only be set 706 // to a timestamp 707 // between the current time and the current time minus 35 days 708 // (inclusive). 709 // If not specified, the current time will be used. Due to delays in 710 // resource 711 // data collection and indexing, there is a volatile window during 712 // which 713 // running the same query may get different results. 714 ReadTime string `json:"readTime,omitempty"` 715 716 // ForceSendFields is a list of field names (e.g. "AssetTypes") to 717 // unconditionally include in API requests. By default, fields with 718 // empty values are omitted from API requests. However, any non-pointer, 719 // non-interface field appearing in ForceSendFields will be sent to the 720 // server regardless of whether the field is empty or not. This may be 721 // used to include empty fields in Patch requests. 722 ForceSendFields []string `json:"-"` 723 724 // NullFields is a list of field names (e.g. "AssetTypes") to include in 725 // API requests with the JSON null value. By default, fields with empty 726 // values are omitted from API requests. However, any field with an 727 // empty value appearing in NullFields will be sent to the server as 728 // null. It is an error if a field in this list has a non-empty value. 729 // This may be used to include null fields in Patch requests. 730 NullFields []string `json:"-"` 731} 732 733func (s *ExportAssetsRequest) MarshalJSON() ([]byte, error) { 734 type NoMethod ExportAssetsRequest 735 raw := NoMethod(*s) 736 return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) 737} 738 739// Expr: Represents a textual expression in the Common Expression 740// Language (CEL) 741// syntax. CEL is a C-like expression language. The syntax and semantics 742// of CEL 743// are documented at https://github.com/google/cel-spec. 744// 745// Example (Comparison): 746// 747// title: "Summary size limit" 748// description: "Determines if a summary is less than 100 chars" 749// expression: "document.summary.size() < 100" 750// 751// Example (Equality): 752// 753// title: "Requestor is owner" 754// description: "Determines if requestor is the document owner" 755// expression: "document.owner == 756// request.auth.claims.email" 757// 758// Example (Logic): 759// 760// title: "Public documents" 761// description: "Determine whether the document should be publicly 762// visible" 763// expression: "document.type != 'private' && document.type != 764// 'internal'" 765// 766// Example (Data Manipulation): 767// 768// title: "Notification string" 769// description: "Create a notification string with a timestamp." 770// expression: "'New message received at ' + 771// string(document.create_time)" 772// 773// The exact variables and functions that may be referenced within an 774// expression 775// are determined by the service that evaluates it. See the 776// service 777// documentation for additional information. 778type Expr struct { 779 // Description: Optional. Description of the expression. This is a 780 // longer text which 781 // describes the expression, e.g. when hovered over it in a UI. 782 Description string `json:"description,omitempty"` 783 784 // Expression: Textual representation of an expression in Common 785 // Expression Language 786 // syntax. 787 Expression string `json:"expression,omitempty"` 788 789 // Location: Optional. String indicating the location of the expression 790 // for error 791 // reporting, e.g. a file name and a position in the file. 792 Location string `json:"location,omitempty"` 793 794 // Title: Optional. Title for the expression, i.e. a short string 795 // describing 796 // its purpose. This can be used e.g. in UIs which allow to enter 797 // the 798 // expression. 799 Title string `json:"title,omitempty"` 800 801 // ForceSendFields is a list of field names (e.g. "Description") to 802 // unconditionally include in API requests. By default, fields with 803 // empty values are omitted from API requests. However, any non-pointer, 804 // non-interface field appearing in ForceSendFields will be sent to the 805 // server regardless of whether the field is empty or not. This may be 806 // used to include empty fields in Patch requests. 807 ForceSendFields []string `json:"-"` 808 809 // NullFields is a list of field names (e.g. "Description") to include 810 // in API requests with the JSON null value. By default, fields with 811 // empty values are omitted from API requests. However, any field with 812 // an empty value appearing in NullFields will be sent to the server as 813 // null. It is an error if a field in this list has a non-empty value. 814 // This may be used to include null fields in Patch requests. 815 NullFields []string `json:"-"` 816} 817 818func (s *Expr) MarshalJSON() ([]byte, error) { 819 type NoMethod Expr 820 raw := NoMethod(*s) 821 return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) 822} 823 824// Feed: An asset feed used to export asset updates to a 825// destinations. 826// An asset feed filter controls what updates are exported. 827// The asset feed must be created within a project, organization, 828// or 829// folder. Supported destinations are: 830// Pub/Sub topics. 831type Feed struct { 832 // AssetNames: A list of the full names of the assets to receive 833 // updates. You must specify 834 // either or both of asset_names and asset_types. Only asset updates 835 // matching 836 // specified asset_names and asset_types are exported to the feed. 837 // For 838 // example: 839 // `//compute.googleapis.com/projects/my_project_123/zones/z 840 // one1/instances/instance1`. 841 // See 842 // [Resource 843 // Names](https://cloud.google.com/apis/design/resource_names#f 844 // ull_resource_name) 845 // for more info. 846 AssetNames []string `json:"assetNames,omitempty"` 847 848 // AssetTypes: A list of types of the assets to receive updates. You 849 // must specify either 850 // or both of asset_names and asset_types. Only asset updates 851 // matching 852 // specified asset_names and asset_types are exported to the feed. 853 // For example: "compute.googleapis.com/Disk" 854 // 855 // See 856 // [this 857 // topic](https://cloud.google.com/asset-inventory/docs/supported-a 858 // sset-types) 859 // for a list of all supported asset types. 860 AssetTypes []string `json:"assetTypes,omitempty"` 861 862 // ContentType: Asset content type. If not specified, no content but the 863 // asset name and 864 // type will be returned. 865 // 866 // Possible values: 867 // "CONTENT_TYPE_UNSPECIFIED" - Unspecified content type. 868 // "RESOURCE" - Resource metadata. 869 // "IAM_POLICY" - The actual IAM policy set on a resource. 870 // "ORG_POLICY" - The Cloud Organization Policy set on an asset. 871 // "ACCESS_POLICY" - The Cloud Access context mananger Policy set on 872 // an asset. 873 ContentType string `json:"contentType,omitempty"` 874 875 // FeedOutputConfig: Required. Feed output configuration defining where 876 // the asset updates are 877 // published to. 878 FeedOutputConfig *FeedOutputConfig `json:"feedOutputConfig,omitempty"` 879 880 // Name: Required. The format will 881 // be 882 // projects/{project_number}/feeds/{client-assigned_feed_identifier} 883 // or 884 // folders/{folder_number}/feeds/{client-assigned_feed_identifier} 885 // or 886 // organizations/{organization_number}/feeds/{client-assigned_feed_ide 887 // ntifier} 888 // 889 // The client-assigned feed identifier must be unique within the 890 // parent 891 // project/folder/organization. 892 Name string `json:"name,omitempty"` 893 894 // ServerResponse contains the HTTP response code and headers from the 895 // server. 896 googleapi.ServerResponse `json:"-"` 897 898 // ForceSendFields is a list of field names (e.g. "AssetNames") to 899 // unconditionally include in API requests. By default, fields with 900 // empty values are omitted from API requests. However, any non-pointer, 901 // non-interface field appearing in ForceSendFields will be sent to the 902 // server regardless of whether the field is empty or not. This may be 903 // used to include empty fields in Patch requests. 904 ForceSendFields []string `json:"-"` 905 906 // NullFields is a list of field names (e.g. "AssetNames") to include in 907 // API requests with the JSON null value. By default, fields with empty 908 // values are omitted from API requests. However, any field with an 909 // empty value appearing in NullFields will be sent to the server as 910 // null. It is an error if a field in this list has a non-empty value. 911 // This may be used to include null fields in Patch requests. 912 NullFields []string `json:"-"` 913} 914 915func (s *Feed) MarshalJSON() ([]byte, error) { 916 type NoMethod Feed 917 raw := NoMethod(*s) 918 return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) 919} 920 921// FeedOutputConfig: Output configuration for asset feed destination. 922type FeedOutputConfig struct { 923 // PubsubDestination: Destination on Pub/Sub. 924 PubsubDestination *PubsubDestination `json:"pubsubDestination,omitempty"` 925 926 // ForceSendFields is a list of field names (e.g. "PubsubDestination") 927 // to unconditionally include in API requests. By default, fields with 928 // empty values are omitted from API requests. However, any non-pointer, 929 // non-interface field appearing in ForceSendFields will be sent to the 930 // server regardless of whether the field is empty or not. This may be 931 // used to include empty fields in Patch requests. 932 ForceSendFields []string `json:"-"` 933 934 // NullFields is a list of field names (e.g. "PubsubDestination") to 935 // include in API requests with the JSON null value. By default, fields 936 // with empty values are omitted from API requests. However, any field 937 // with an empty value appearing in NullFields will be sent to the 938 // server as null. It is an error if a field in this list has a 939 // non-empty value. This may be used to include null fields in Patch 940 // requests. 941 NullFields []string `json:"-"` 942} 943 944func (s *FeedOutputConfig) MarshalJSON() ([]byte, error) { 945 type NoMethod FeedOutputConfig 946 raw := NoMethod(*s) 947 return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) 948} 949 950// GcsDestination: A Cloud Storage location. 951type GcsDestination struct { 952 // Uri: The uri of the Cloud Storage object. It's the same uri that is 953 // used by 954 // gsutil. For example: "gs://bucket_name/object_name". See [Viewing 955 // and 956 // Editing 957 // Object 958 // Metadata](https://cloud.google.com/storage/docs/viewing-editing 959 // -metadata) 960 // for more information. 961 Uri string `json:"uri,omitempty"` 962 963 // UriPrefix: The uri prefix of all generated Cloud Storage objects. For 964 // example: 965 // "gs://bucket_name/object_name_prefix". Each object uri is in 966 // format: 967 // "gs://bucket_name/object_name_prefix/<asset type>/<shard number> and 968 // only 969 // contains assets for that type. <shard number> starts from 0. For 970 // example: 971 // "gs://bucket_name/object_name_prefix/compute.googleapis.com/D 972 // isk/0" is 973 // the first shard of output objects containing 974 // all 975 // compute.googleapis.com/Disk assets. An INVALID_ARGUMENT error will 976 // be 977 // returned if file with the same name 978 // "gs://bucket_name/object_name_prefix" 979 // already exists. 980 UriPrefix string `json:"uriPrefix,omitempty"` 981 982 // ForceSendFields is a list of field names (e.g. "Uri") to 983 // unconditionally include in API requests. By default, fields with 984 // empty values are omitted from API requests. However, any non-pointer, 985 // non-interface field appearing in ForceSendFields will be sent to the 986 // server regardless of whether the field is empty or not. This may be 987 // used to include empty fields in Patch requests. 988 ForceSendFields []string `json:"-"` 989 990 // NullFields is a list of field names (e.g. "Uri") to include in API 991 // requests with the JSON null value. By default, fields with empty 992 // values are omitted from API requests. However, any field with an 993 // empty value appearing in NullFields will be sent to the server as 994 // null. It is an error if a field in this list has a non-empty value. 995 // This may be used to include null fields in Patch requests. 996 NullFields []string `json:"-"` 997} 998 999func (s *GcsDestination) MarshalJSON() ([]byte, error) { 1000 type NoMethod GcsDestination 1001 raw := NoMethod(*s) 1002 return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) 1003} 1004 1005// GoogleCloudOrgpolicyV1BooleanPolicy: Used in `policy_type` to specify 1006// how `boolean_policy` will behave at this 1007// resource. 1008type GoogleCloudOrgpolicyV1BooleanPolicy struct { 1009 // Enforced: If `true`, then the `Policy` is enforced. If `false`, then 1010 // any 1011 // configuration is acceptable. 1012 // 1013 // Suppose you have a 1014 // `Constraint` 1015 // `constraints/compute.disableSerialPortAccess` with 1016 // `constraint_default` 1017 // set to `ALLOW`. A `Policy` for that `Constraint` exhibits the 1018 // following 1019 // behavior: 1020 // - If the `Policy` at this resource has enforced set to `false`, 1021 // serial 1022 // port connection attempts will be allowed. 1023 // - If the `Policy` at this resource has enforced set to `true`, 1024 // serial 1025 // port connection attempts will be refused. 1026 // - If the `Policy` at this resource is `RestoreDefault`, serial 1027 // port 1028 // connection attempts will be allowed. 1029 // - If no `Policy` is set at this resource or anywhere higher in the 1030 // resource hierarchy, serial port connection attempts will be 1031 // allowed. 1032 // - If no `Policy` is set at this resource, but one exists higher in 1033 // the 1034 // resource hierarchy, the behavior is as if the`Policy` were set 1035 // at 1036 // this resource. 1037 // 1038 // The following examples demonstrate the different possible 1039 // layerings: 1040 // 1041 // Example 1 (nearest `Constraint` wins): 1042 // `organizations/foo` has a `Policy` with: 1043 // {enforced: false} 1044 // `projects/bar` has no `Policy` set. 1045 // The constraint at `projects/bar` and `organizations/foo` will not 1046 // be 1047 // enforced. 1048 // 1049 // Example 2 (enforcement gets replaced): 1050 // `organizations/foo` has a `Policy` with: 1051 // {enforced: false} 1052 // `projects/bar` has a `Policy` with: 1053 // {enforced: true} 1054 // The constraint at `organizations/foo` is not enforced. 1055 // The constraint at `projects/bar` is enforced. 1056 // 1057 // Example 3 (RestoreDefault): 1058 // `organizations/foo` has a `Policy` with: 1059 // {enforced: true} 1060 // `projects/bar` has a `Policy` with: 1061 // {RestoreDefault: {}} 1062 // The constraint at `organizations/foo` is enforced. 1063 // The constraint at `projects/bar` is not enforced, 1064 // because 1065 // `constraint_default` for the `Constraint` is `ALLOW`. 1066 Enforced bool `json:"enforced,omitempty"` 1067 1068 // ForceSendFields is a list of field names (e.g. "Enforced") to 1069 // unconditionally include in API requests. By default, fields with 1070 // empty values are omitted from API requests. However, any non-pointer, 1071 // non-interface field appearing in ForceSendFields will be sent to the 1072 // server regardless of whether the field is empty or not. This may be 1073 // used to include empty fields in Patch requests. 1074 ForceSendFields []string `json:"-"` 1075 1076 // NullFields is a list of field names (e.g. "Enforced") to include in 1077 // API requests with the JSON null value. By default, fields with empty 1078 // values are omitted from API requests. However, any field with an 1079 // empty value appearing in NullFields will be sent to the server as 1080 // null. It is an error if a field in this list has a non-empty value. 1081 // This may be used to include null fields in Patch requests. 1082 NullFields []string `json:"-"` 1083} 1084 1085func (s *GoogleCloudOrgpolicyV1BooleanPolicy) MarshalJSON() ([]byte, error) { 1086 type NoMethod GoogleCloudOrgpolicyV1BooleanPolicy 1087 raw := NoMethod(*s) 1088 return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) 1089} 1090 1091// GoogleCloudOrgpolicyV1ListPolicy: Used in `policy_type` to specify 1092// how `list_policy` behaves at this 1093// resource. 1094// 1095// `ListPolicy` can define specific values and subtrees of Cloud 1096// Resource 1097// Manager resource hierarchy (`Organizations`, `Folders`, `Projects`) 1098// that 1099// are allowed or denied by setting the `allowed_values` and 1100// `denied_values` 1101// fields. This is achieved by using the `under:` and optional `is:` 1102// prefixes. 1103// The `under:` prefix is used to denote resource subtree values. 1104// The `is:` prefix is used to denote specific values, and is required 1105// only 1106// if the value contains a ":". Values prefixed with "is:" are treated 1107// the 1108// same as values with no prefix. 1109// Ancestry subtrees must be in one of the following formats: 1110// - "projects/<project-id>", e.g. "projects/tokyo-rain-123" 1111// - "folders/<folder-id>", e.g. "folders/1234" 1112// - "organizations/<organization-id>", e.g. 1113// "organizations/1234" 1114// The `supports_under` field of the associated `Constraint` defines 1115// whether 1116// ancestry prefixes can be used. You can set `allowed_values` 1117// and 1118// `denied_values` in the same `Policy` if `all_values` 1119// is 1120// `ALL_VALUES_UNSPECIFIED`. `ALLOW` or `DENY` are used to allow or deny 1121// all 1122// values. If `all_values` is set to either `ALLOW` or 1123// `DENY`, 1124// `allowed_values` and `denied_values` must be unset. 1125type GoogleCloudOrgpolicyV1ListPolicy struct { 1126 // AllValues: The policy all_values state. 1127 // 1128 // Possible values: 1129 // "ALL_VALUES_UNSPECIFIED" - Indicates that allowed_values or 1130 // denied_values must be set. 1131 // "ALLOW" - A policy with this set allows all values. 1132 // "DENY" - A policy with this set denies all values. 1133 AllValues string `json:"allValues,omitempty"` 1134 1135 // AllowedValues: List of values allowed at this resource. Can only be 1136 // set if `all_values` 1137 // is set to `ALL_VALUES_UNSPECIFIED`. 1138 AllowedValues []string `json:"allowedValues,omitempty"` 1139 1140 // DeniedValues: List of values denied at this resource. Can only be set 1141 // if `all_values` 1142 // is set to `ALL_VALUES_UNSPECIFIED`. 1143 DeniedValues []string `json:"deniedValues,omitempty"` 1144 1145 // InheritFromParent: Determines the inheritance behavior for this 1146 // `Policy`. 1147 // 1148 // By default, a `ListPolicy` set at a resource supercedes any `Policy` 1149 // set 1150 // anywhere up the resource hierarchy. However, if `inherit_from_parent` 1151 // is 1152 // set to `true`, then the values from the effective `Policy` of the 1153 // parent 1154 // resource are inherited, meaning the values set in this `Policy` 1155 // are 1156 // added to the values inherited up the hierarchy. 1157 // 1158 // Setting `Policy` hierarchies that inherit both allowed values and 1159 // denied 1160 // values isn't recommended in most circumstances to keep the 1161 // configuration 1162 // simple and understandable. However, it is possible to set a `Policy` 1163 // with 1164 // `allowed_values` set that inherits a `Policy` with `denied_values` 1165 // set. 1166 // In this case, the values that are allowed must be in `allowed_values` 1167 // and 1168 // not present in `denied_values`. 1169 // 1170 // For example, suppose you have a 1171 // `Constraint` 1172 // `constraints/serviceuser.services`, which has a `constraint_type` 1173 // of 1174 // `list_constraint`, and with `constraint_default` set to 1175 // `ALLOW`. 1176 // Suppose that at the Organization level, a `Policy` is applied 1177 // that 1178 // restricts the allowed API activations to {`E1`, `E2`}. Then, if 1179 // a 1180 // `Policy` is applied to a project below the Organization that 1181 // has 1182 // `inherit_from_parent` set to `false` and field all_values set to 1183 // DENY, 1184 // then an attempt to activate any API will be denied. 1185 // 1186 // The following examples demonstrate different possible layerings 1187 // for 1188 // `projects/bar` parented by `organizations/foo`: 1189 // 1190 // Example 1 (no inherited values): 1191 // `organizations/foo` has a `Policy` with values: 1192 // {allowed_values: "E1" allowed_values:"E2"} 1193 // `projects/bar` has `inherit_from_parent` `false` and values: 1194 // {allowed_values: "E3" allowed_values: "E4"} 1195 // The accepted values at `organizations/foo` are `E1`, `E2`. 1196 // The accepted values at `projects/bar` are `E3`, and `E4`. 1197 // 1198 // Example 2 (inherited values): 1199 // `organizations/foo` has a `Policy` with values: 1200 // {allowed_values: "E1" allowed_values:"E2"} 1201 // `projects/bar` has a `Policy` with values: 1202 // {value: "E3" value: "E4" inherit_from_parent: true} 1203 // The accepted values at `organizations/foo` are `E1`, `E2`. 1204 // The accepted values at `projects/bar` are `E1`, `E2`, `E3`, and 1205 // `E4`. 1206 // 1207 // Example 3 (inheriting both allowed and denied values): 1208 // `organizations/foo` has a `Policy` with values: 1209 // {allowed_values: "E1" allowed_values: "E2"} 1210 // `projects/bar` has a `Policy` with: 1211 // {denied_values: "E1"} 1212 // The accepted values at `organizations/foo` are `E1`, `E2`. 1213 // The value accepted at `projects/bar` is `E2`. 1214 // 1215 // Example 4 (RestoreDefault): 1216 // `organizations/foo` has a `Policy` with values: 1217 // {allowed_values: "E1" allowed_values:"E2"} 1218 // `projects/bar` has a `Policy` with values: 1219 // {RestoreDefault: {}} 1220 // The accepted values at `organizations/foo` are `E1`, `E2`. 1221 // The accepted values at `projects/bar` are either all or none 1222 // depending on 1223 // the value of `constraint_default` (if `ALLOW`, all; if 1224 // `DENY`, none). 1225 // 1226 // Example 5 (no policy inherits parent policy): 1227 // `organizations/foo` has no `Policy` set. 1228 // `projects/bar` has no `Policy` set. 1229 // The accepted values at both levels are either all or none depending 1230 // on 1231 // the value of `constraint_default` (if `ALLOW`, all; if 1232 // `DENY`, none). 1233 // 1234 // Example 6 (ListConstraint allowing all): 1235 // `organizations/foo` has a `Policy` with values: 1236 // {allowed_values: "E1" allowed_values: "E2"} 1237 // `projects/bar` has a `Policy` with: 1238 // {all: ALLOW} 1239 // The accepted values at `organizations/foo` are `E1`, E2`. 1240 // Any value is accepted at `projects/bar`. 1241 // 1242 // Example 7 (ListConstraint allowing none): 1243 // `organizations/foo` has a `Policy` with values: 1244 // {allowed_values: "E1" allowed_values: "E2"} 1245 // `projects/bar` has a `Policy` with: 1246 // {all: DENY} 1247 // The accepted values at `organizations/foo` are `E1`, E2`. 1248 // No value is accepted at `projects/bar`. 1249 // 1250 // Example 10 (allowed and denied subtrees of Resource Manager 1251 // hierarchy): 1252 // Given the following resource hierarchy 1253 // O1->{F1, F2}; F1->{P1}; F2->{P2, P3}, 1254 // `organizations/foo` has a `Policy` with values: 1255 // {allowed_values: "under:organizations/O1"} 1256 // `projects/bar` has a `Policy` with: 1257 // {allowed_values: "under:projects/P3"} 1258 // {denied_values: "under:folders/F2"} 1259 // The accepted values at `organizations/foo` are `organizations/O1`, 1260 // `folders/F1`, `folders/F2`, `projects/P1`, `projects/P2`, 1261 // `projects/P3`. 1262 // The accepted values at `projects/bar` are `organizations/O1`, 1263 // `folders/F1`, `projects/P1`. 1264 InheritFromParent bool `json:"inheritFromParent,omitempty"` 1265 1266 // SuggestedValue: Optional. The Google Cloud Console will try to 1267 // default to a configuration 1268 // that matches the value specified in this `Policy`. If 1269 // `suggested_value` 1270 // is not set, it will inherit the value specified higher in the 1271 // hierarchy, 1272 // unless `inherit_from_parent` is `false`. 1273 SuggestedValue string `json:"suggestedValue,omitempty"` 1274 1275 // ForceSendFields is a list of field names (e.g. "AllValues") to 1276 // unconditionally include in API requests. By default, fields with 1277 // empty values are omitted from API requests. However, any non-pointer, 1278 // non-interface field appearing in ForceSendFields will be sent to the 1279 // server regardless of whether the field is empty or not. This may be 1280 // used to include empty fields in Patch requests. 1281 ForceSendFields []string `json:"-"` 1282 1283 // NullFields is a list of field names (e.g. "AllValues") to include in 1284 // API requests with the JSON null value. By default, fields with empty 1285 // values are omitted from API requests. However, any field with an 1286 // empty value appearing in NullFields will be sent to the server as 1287 // null. It is an error if a field in this list has a non-empty value. 1288 // This may be used to include null fields in Patch requests. 1289 NullFields []string `json:"-"` 1290} 1291 1292func (s *GoogleCloudOrgpolicyV1ListPolicy) MarshalJSON() ([]byte, error) { 1293 type NoMethod GoogleCloudOrgpolicyV1ListPolicy 1294 raw := NoMethod(*s) 1295 return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) 1296} 1297 1298// GoogleCloudOrgpolicyV1Policy: Defines a Cloud Organization `Policy` 1299// which is used to specify `Constraints` 1300// for configurations of Cloud Platform resources. 1301type GoogleCloudOrgpolicyV1Policy struct { 1302 // BooleanPolicy: For boolean `Constraints`, whether to enforce the 1303 // `Constraint` or not. 1304 BooleanPolicy *GoogleCloudOrgpolicyV1BooleanPolicy `json:"booleanPolicy,omitempty"` 1305 1306 // Constraint: The name of the `Constraint` the `Policy` is configuring, 1307 // for example, 1308 // `constraints/serviceuser.services`. 1309 // 1310 // Immutable after creation. 1311 Constraint string `json:"constraint,omitempty"` 1312 1313 // Etag: An opaque tag indicating the current version of the `Policy`, 1314 // used for 1315 // concurrency control. 1316 // 1317 // When the `Policy` is returned from either a `GetPolicy` or 1318 // a 1319 // `ListOrgPolicy` request, this `etag` indicates the version of the 1320 // current 1321 // `Policy` to use when executing a read-modify-write loop. 1322 // 1323 // When the `Policy` is returned from a `GetEffectivePolicy` request, 1324 // the 1325 // `etag` will be unset. 1326 // 1327 // When the `Policy` is used in a `SetOrgPolicy` method, use the `etag` 1328 // value 1329 // that was returned from a `GetOrgPolicy` request as part of 1330 // a 1331 // read-modify-write loop for concurrency control. Not setting the 1332 // `etag`in a 1333 // `SetOrgPolicy` request will result in an unconditional write of 1334 // the 1335 // `Policy`. 1336 Etag string `json:"etag,omitempty"` 1337 1338 // ListPolicy: List of values either allowed or disallowed. 1339 ListPolicy *GoogleCloudOrgpolicyV1ListPolicy `json:"listPolicy,omitempty"` 1340 1341 // RestoreDefault: Restores the default behavior of the constraint; 1342 // independent of 1343 // `Constraint` type. 1344 RestoreDefault *GoogleCloudOrgpolicyV1RestoreDefault `json:"restoreDefault,omitempty"` 1345 1346 // UpdateTime: The time stamp the `Policy` was previously updated. This 1347 // is set by the 1348 // server, not specified by the caller, and represents the last time a 1349 // call to 1350 // `SetOrgPolicy` was made for that `Policy`. Any value set by the 1351 // client will 1352 // be ignored. 1353 UpdateTime string `json:"updateTime,omitempty"` 1354 1355 // Version: Version of the `Policy`. Default version is 0; 1356 Version int64 `json:"version,omitempty"` 1357 1358 // ForceSendFields is a list of field names (e.g. "BooleanPolicy") to 1359 // unconditionally include in API requests. By default, fields with 1360 // empty values are omitted from API requests. However, any non-pointer, 1361 // non-interface field appearing in ForceSendFields will be sent to the 1362 // server regardless of whether the field is empty or not. This may be 1363 // used to include empty fields in Patch requests. 1364 ForceSendFields []string `json:"-"` 1365 1366 // NullFields is a list of field names (e.g. "BooleanPolicy") to include 1367 // in API requests with the JSON null value. By default, fields with 1368 // empty values are omitted from API requests. However, any field with 1369 // an empty value appearing in NullFields will be sent to the server as 1370 // null. It is an error if a field in this list has a non-empty value. 1371 // This may be used to include null fields in Patch requests. 1372 NullFields []string `json:"-"` 1373} 1374 1375func (s *GoogleCloudOrgpolicyV1Policy) MarshalJSON() ([]byte, error) { 1376 type NoMethod GoogleCloudOrgpolicyV1Policy 1377 raw := NoMethod(*s) 1378 return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) 1379} 1380 1381// GoogleCloudOrgpolicyV1RestoreDefault: Ignores policies set above this 1382// resource and restores the 1383// `constraint_default` enforcement behavior of the specific 1384// `Constraint` at 1385// this resource. 1386// 1387// Suppose that `constraint_default` is set to `ALLOW` for 1388// the 1389// `Constraint` `constraints/serviceuser.services`. Suppose that 1390// organization 1391// foo.com sets a `Policy` at their Organization resource node that 1392// restricts 1393// the allowed service activations to deny all service activations. 1394// They 1395// could then set a `Policy` with the `policy_type` `restore_default` 1396// on 1397// several experimental projects, restoring the 1398// `constraint_default` 1399// enforcement of the `Constraint` for only those projects, allowing 1400// those 1401// projects to have all services activated. 1402type GoogleCloudOrgpolicyV1RestoreDefault struct { 1403} 1404 1405// GoogleIdentityAccesscontextmanagerV1AccessLevel: An `AccessLevel` is 1406// a label that can be applied to requests to Google Cloud 1407// services, along with a list of requirements necessary for the label 1408// to be 1409// applied. 1410type GoogleIdentityAccesscontextmanagerV1AccessLevel struct { 1411 // Basic: A `BasicLevel` composed of `Conditions`. 1412 Basic *GoogleIdentityAccesscontextmanagerV1BasicLevel `json:"basic,omitempty"` 1413 1414 // Custom: A `CustomLevel` written in the Common Expression Language. 1415 Custom *GoogleIdentityAccesscontextmanagerV1CustomLevel `json:"custom,omitempty"` 1416 1417 // Description: Description of the `AccessLevel` and its use. Does not 1418 // affect behavior. 1419 Description string `json:"description,omitempty"` 1420 1421 // Name: Required. Resource name for the Access Level. The `short_name` 1422 // component 1423 // must begin with a letter and only include alphanumeric and '_'. 1424 // Format: 1425 // `accessPolicies/{policy_id}/accessLevels/{short_name}`. The maximum 1426 // length 1427 // of the `short_name` component is 50 characters. 1428 Name string `json:"name,omitempty"` 1429 1430 // Title: Human readable title. Must be unique within the Policy. 1431 Title string `json:"title,omitempty"` 1432 1433 // ForceSendFields is a list of field names (e.g. "Basic") to 1434 // unconditionally include in API requests. By default, fields with 1435 // empty values are omitted from API requests. However, any non-pointer, 1436 // non-interface field appearing in ForceSendFields will be sent to the 1437 // server regardless of whether the field is empty or not. This may be 1438 // used to include empty fields in Patch requests. 1439 ForceSendFields []string `json:"-"` 1440 1441 // NullFields is a list of field names (e.g. "Basic") to include in API 1442 // requests with the JSON null value. By default, fields with empty 1443 // values are omitted from API requests. However, any field with an 1444 // empty value appearing in NullFields will be sent to the server as 1445 // null. It is an error if a field in this list has a non-empty value. 1446 // This may be used to include null fields in Patch requests. 1447 NullFields []string `json:"-"` 1448} 1449 1450func (s *GoogleIdentityAccesscontextmanagerV1AccessLevel) MarshalJSON() ([]byte, error) { 1451 type NoMethod GoogleIdentityAccesscontextmanagerV1AccessLevel 1452 raw := NoMethod(*s) 1453 return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) 1454} 1455 1456// GoogleIdentityAccesscontextmanagerV1AccessPolicy: `AccessPolicy` is a 1457// container for `AccessLevels` (which define the necessary 1458// attributes to use Google Cloud services) and `ServicePerimeters` 1459// (which 1460// define regions of services able to freely pass data within a 1461// perimeter). An 1462// access policy is globally visible within an organization, and 1463// the 1464// restrictions it specifies apply to all projects within an 1465// organization. 1466type GoogleIdentityAccesscontextmanagerV1AccessPolicy struct { 1467 // Etag: Output only. An opaque identifier for the current version of 1468 // the 1469 // `AccessPolicy`. This will always be a strongly validated etag, 1470 // meaning that 1471 // two Access Polices will be identical if and only if their etags 1472 // are 1473 // identical. Clients should not expect this to be in any specific 1474 // format. 1475 Etag string `json:"etag,omitempty"` 1476 1477 // Name: Output only. Resource name of the `AccessPolicy`. 1478 // Format: 1479 // `accessPolicies/{policy_id}` 1480 Name string `json:"name,omitempty"` 1481 1482 // Parent: Required. The parent of this `AccessPolicy` in the Cloud 1483 // Resource 1484 // Hierarchy. Currently immutable once created. 1485 // Format: 1486 // `organizations/{organization_id}` 1487 Parent string `json:"parent,omitempty"` 1488 1489 // Title: Required. Human readable title. Does not affect behavior. 1490 Title string `json:"title,omitempty"` 1491 1492 // ForceSendFields is a list of field names (e.g. "Etag") to 1493 // unconditionally include in API requests. By default, fields with 1494 // empty values are omitted from API requests. However, any non-pointer, 1495 // non-interface field appearing in ForceSendFields will be sent to the 1496 // server regardless of whether the field is empty or not. This may be 1497 // used to include empty fields in Patch requests. 1498 ForceSendFields []string `json:"-"` 1499 1500 // NullFields is a list of field names (e.g. "Etag") to include in API 1501 // requests with the JSON null value. By default, fields with empty 1502 // values are omitted from API requests. However, any field with an 1503 // empty value appearing in NullFields will be sent to the server as 1504 // null. It is an error if a field in this list has a non-empty value. 1505 // This may be used to include null fields in Patch requests. 1506 NullFields []string `json:"-"` 1507} 1508 1509func (s *GoogleIdentityAccesscontextmanagerV1AccessPolicy) MarshalJSON() ([]byte, error) { 1510 type NoMethod GoogleIdentityAccesscontextmanagerV1AccessPolicy 1511 raw := NoMethod(*s) 1512 return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) 1513} 1514 1515// GoogleIdentityAccesscontextmanagerV1BasicLevel: `BasicLevel` is an 1516// `AccessLevel` using a set of recommended features. 1517type GoogleIdentityAccesscontextmanagerV1BasicLevel struct { 1518 // CombiningFunction: How the `conditions` list should be combined to 1519 // determine if a request is 1520 // granted this `AccessLevel`. If AND is used, each `Condition` 1521 // in 1522 // `conditions` must be satisfied for the `AccessLevel` to be applied. 1523 // If OR 1524 // is used, at least one `Condition` in `conditions` must be satisfied 1525 // for the 1526 // `AccessLevel` to be applied. Default behavior is AND. 1527 // 1528 // Possible values: 1529 // "AND" - All `Conditions` must be true for the `BasicLevel` to be 1530 // true. 1531 // "OR" - If at least one `Condition` is true, then the `BasicLevel` 1532 // is true. 1533 CombiningFunction string `json:"combiningFunction,omitempty"` 1534 1535 // Conditions: Required. A list of requirements for the `AccessLevel` to 1536 // be granted. 1537 Conditions []*GoogleIdentityAccesscontextmanagerV1Condition `json:"conditions,omitempty"` 1538 1539 // ForceSendFields is a list of field names (e.g. "CombiningFunction") 1540 // to unconditionally include in API requests. By default, fields with 1541 // empty values are omitted from API requests. However, any non-pointer, 1542 // non-interface field appearing in ForceSendFields will be sent to the 1543 // server regardless of whether the field is empty or not. This may be 1544 // used to include empty fields in Patch requests. 1545 ForceSendFields []string `json:"-"` 1546 1547 // NullFields is a list of field names (e.g. "CombiningFunction") to 1548 // include in API requests with the JSON null value. By default, fields 1549 // with empty values are omitted from API requests. However, any field 1550 // with an empty value appearing in NullFields will be sent to the 1551 // server as null. It is an error if a field in this list has a 1552 // non-empty value. This may be used to include null fields in Patch 1553 // requests. 1554 NullFields []string `json:"-"` 1555} 1556 1557func (s *GoogleIdentityAccesscontextmanagerV1BasicLevel) MarshalJSON() ([]byte, error) { 1558 type NoMethod GoogleIdentityAccesscontextmanagerV1BasicLevel 1559 raw := NoMethod(*s) 1560 return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) 1561} 1562 1563// GoogleIdentityAccesscontextmanagerV1Condition: A condition necessary 1564// for an `AccessLevel` to be granted. The Condition is an 1565// AND over its fields. So a Condition is true if: 1) the request IP is 1566// from one 1567// of the listed subnetworks AND 2) the originating device complies with 1568// the 1569// listed device policy AND 3) all listed access levels are granted AND 1570// 4) the 1571// request was sent at a time allowed by the DateTimeRestriction. 1572type GoogleIdentityAccesscontextmanagerV1Condition struct { 1573 // DevicePolicy: Device specific restrictions, all restrictions must 1574 // hold for the 1575 // Condition to be true. If not specified, all devices are allowed. 1576 DevicePolicy *GoogleIdentityAccesscontextmanagerV1DevicePolicy `json:"devicePolicy,omitempty"` 1577 1578 // IpSubnetworks: CIDR block IP subnetwork specification. May be IPv4 or 1579 // IPv6. Note that for 1580 // a CIDR IP address block, the specified IP address portion must be 1581 // properly 1582 // truncated (i.e. all the host bits must be zero) or the input is 1583 // considered 1584 // malformed. For example, "192.0.2.0/24" is accepted but "192.0.2.1/24" 1585 // is 1586 // not. Similarly, for IPv6, "2001:db8::/32" is accepted 1587 // whereas 1588 // "2001:db8::1/32" is not. The originating IP of a request must be in 1589 // one of 1590 // the listed subnets in order for this Condition to be true. If empty, 1591 // all IP 1592 // addresses are allowed. 1593 IpSubnetworks []string `json:"ipSubnetworks,omitempty"` 1594 1595 // Members: The request must be made by one of the provided user or 1596 // service 1597 // accounts. Groups are not 1598 // supported. 1599 // Syntax: 1600 // `user:{emailid}` 1601 // `serviceAccount:{emailid}` 1602 // If not specified, a request may come from any user. 1603 Members []string `json:"members,omitempty"` 1604 1605 // Negate: Whether to negate the Condition. If true, the Condition 1606 // becomes a NAND over 1607 // its non-empty fields, each field must be false for the Condition 1608 // overall to 1609 // be satisfied. Defaults to false. 1610 Negate bool `json:"negate,omitempty"` 1611 1612 // Regions: The request must originate from one of the provided 1613 // countries/regions. 1614 // Must be valid ISO 3166-1 alpha-2 codes. 1615 Regions []string `json:"regions,omitempty"` 1616 1617 // RequiredAccessLevels: A list of other access levels defined in the 1618 // same `Policy`, referenced by 1619 // resource name. Referencing an `AccessLevel` which does not exist is 1620 // an 1621 // error. All access levels listed must be granted for the Condition 1622 // to be true. 1623 // Example: 1624 // "accessPolicies/MY_POLICY/accessLevels/LEVEL_NAME" 1625 RequiredAccessLevels []string `json:"requiredAccessLevels,omitempty"` 1626 1627 // ForceSendFields is a list of field names (e.g. "DevicePolicy") to 1628 // unconditionally include in API requests. By default, fields with 1629 // empty values are omitted from API requests. However, any non-pointer, 1630 // non-interface field appearing in ForceSendFields will be sent to the 1631 // server regardless of whether the field is empty or not. This may be 1632 // used to include empty fields in Patch requests. 1633 ForceSendFields []string `json:"-"` 1634 1635 // NullFields is a list of field names (e.g. "DevicePolicy") to include 1636 // in API requests with the JSON null value. By default, fields with 1637 // empty values are omitted from API requests. However, any field with 1638 // an empty value appearing in NullFields will be sent to the server as 1639 // null. It is an error if a field in this list has a non-empty value. 1640 // This may be used to include null fields in Patch requests. 1641 NullFields []string `json:"-"` 1642} 1643 1644func (s *GoogleIdentityAccesscontextmanagerV1Condition) MarshalJSON() ([]byte, error) { 1645 type NoMethod GoogleIdentityAccesscontextmanagerV1Condition 1646 raw := NoMethod(*s) 1647 return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) 1648} 1649 1650// GoogleIdentityAccesscontextmanagerV1CustomLevel: `CustomLevel` is an 1651// `AccessLevel` using the Cloud Common Expression Language 1652// to represent the necessary conditions for the level to apply to a 1653// request. 1654// See CEL spec at: https://github.com/google/cel-spec 1655type GoogleIdentityAccesscontextmanagerV1CustomLevel struct { 1656 // Expr: Required. A Cloud CEL expression evaluating to a boolean. 1657 Expr *Expr `json:"expr,omitempty"` 1658 1659 // ForceSendFields is a list of field names (e.g. "Expr") to 1660 // unconditionally include in API requests. By default, fields with 1661 // empty values are omitted from API requests. However, any non-pointer, 1662 // non-interface field appearing in ForceSendFields will be sent to the 1663 // server regardless of whether the field is empty or not. This may be 1664 // used to include empty fields in Patch requests. 1665 ForceSendFields []string `json:"-"` 1666 1667 // NullFields is a list of field names (e.g. "Expr") to include in API 1668 // requests with the JSON null value. By default, fields with empty 1669 // values are omitted from API requests. However, any field with an 1670 // empty value appearing in NullFields will be sent to the server as 1671 // null. It is an error if a field in this list has a non-empty value. 1672 // This may be used to include null fields in Patch requests. 1673 NullFields []string `json:"-"` 1674} 1675 1676func (s *GoogleIdentityAccesscontextmanagerV1CustomLevel) MarshalJSON() ([]byte, error) { 1677 type NoMethod GoogleIdentityAccesscontextmanagerV1CustomLevel 1678 raw := NoMethod(*s) 1679 return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) 1680} 1681 1682// GoogleIdentityAccesscontextmanagerV1DevicePolicy: `DevicePolicy` 1683// specifies device specific restrictions necessary to acquire a 1684// given access level. A `DevicePolicy` specifies requirements for 1685// requests from 1686// devices to be granted access levels, it does not do any enforcement 1687// on the 1688// device. `DevicePolicy` acts as an AND over all specified fields, and 1689// each 1690// repeated field is an OR over its elements. Any unset fields are 1691// ignored. For 1692// example, if the proto is { os_type : DESKTOP_WINDOWS, os_type 1693// : 1694// DESKTOP_LINUX, encryption_status: ENCRYPTED}, then the DevicePolicy 1695// will be 1696// true for requests originating from encrypted Linux desktops and 1697// encrypted 1698// Windows desktops. 1699type GoogleIdentityAccesscontextmanagerV1DevicePolicy struct { 1700 // AllowedDeviceManagementLevels: Allowed device management levels, an 1701 // empty list allows all management 1702 // levels. 1703 // 1704 // Possible values: 1705 // "MANAGEMENT_UNSPECIFIED" - The device's management level is not 1706 // specified or not known. 1707 // "NONE" - The device is not managed. 1708 // "BASIC" - Basic management is enabled, which is generally limited 1709 // to monitoring and 1710 // wiping the corporate account. 1711 // "COMPLETE" - Complete device management. This includes more 1712 // thorough monitoring and the 1713 // ability to directly manage the device (such as remote wiping). This 1714 // can be 1715 // enabled through the Android Enterprise Platform. 1716 AllowedDeviceManagementLevels []string `json:"allowedDeviceManagementLevels,omitempty"` 1717 1718 // AllowedEncryptionStatuses: Allowed encryptions statuses, an empty 1719 // list allows all statuses. 1720 // 1721 // Possible values: 1722 // "ENCRYPTION_UNSPECIFIED" - The encryption status of the device is 1723 // not specified or not known. 1724 // "ENCRYPTION_UNSUPPORTED" - The device does not support encryption. 1725 // "UNENCRYPTED" - The device supports encryption, but is currently 1726 // unencrypted. 1727 // "ENCRYPTED" - The device is encrypted. 1728 AllowedEncryptionStatuses []string `json:"allowedEncryptionStatuses,omitempty"` 1729 1730 // OsConstraints: Allowed OS versions, an empty list allows all types 1731 // and all versions. 1732 OsConstraints []*GoogleIdentityAccesscontextmanagerV1OsConstraint `json:"osConstraints,omitempty"` 1733 1734 // RequireAdminApproval: Whether the device needs to be approved by the 1735 // customer admin. 1736 RequireAdminApproval bool `json:"requireAdminApproval,omitempty"` 1737 1738 // RequireCorpOwned: Whether the device needs to be corp owned. 1739 RequireCorpOwned bool `json:"requireCorpOwned,omitempty"` 1740 1741 // RequireScreenlock: Whether or not screenlock is required for the 1742 // DevicePolicy to be true. 1743 // Defaults to `false`. 1744 RequireScreenlock bool `json:"requireScreenlock,omitempty"` 1745 1746 // ForceSendFields is a list of field names (e.g. 1747 // "AllowedDeviceManagementLevels") to unconditionally include in API 1748 // requests. By default, fields with empty values are omitted from API 1749 // requests. However, any non-pointer, non-interface field appearing in 1750 // ForceSendFields will be sent to the server regardless of whether the 1751 // field is empty or not. This may be used to include empty fields in 1752 // Patch requests. 1753 ForceSendFields []string `json:"-"` 1754 1755 // NullFields is a list of field names (e.g. 1756 // "AllowedDeviceManagementLevels") to include in API requests with the 1757 // JSON null value. By default, fields with empty values are omitted 1758 // from API requests. However, any field with an empty value appearing 1759 // in NullFields will be sent to the server as null. It is an error if a 1760 // field in this list has a non-empty value. This may be used to include 1761 // null fields in Patch requests. 1762 NullFields []string `json:"-"` 1763} 1764 1765func (s *GoogleIdentityAccesscontextmanagerV1DevicePolicy) MarshalJSON() ([]byte, error) { 1766 type NoMethod GoogleIdentityAccesscontextmanagerV1DevicePolicy 1767 raw := NoMethod(*s) 1768 return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) 1769} 1770 1771// GoogleIdentityAccesscontextmanagerV1OsConstraint: A restriction on 1772// the OS type and version of devices making requests. 1773type GoogleIdentityAccesscontextmanagerV1OsConstraint struct { 1774 // MinimumVersion: The minimum allowed OS version. If not set, any 1775 // version of this OS 1776 // satisfies the constraint. Format: "major.minor.patch". 1777 // Examples: "10.5.301", "9.2.1". 1778 MinimumVersion string `json:"minimumVersion,omitempty"` 1779 1780 // OsType: Required. The allowed OS type. 1781 // 1782 // Possible values: 1783 // "OS_UNSPECIFIED" - The operating system of the device is not 1784 // specified or not known. 1785 // "DESKTOP_MAC" - A desktop Mac operating system. 1786 // "DESKTOP_WINDOWS" - A desktop Windows operating system. 1787 // "DESKTOP_LINUX" - A desktop Linux operating system. 1788 // "DESKTOP_CHROME_OS" - A desktop ChromeOS operating system. 1789 // "ANDROID" - An Android operating system. 1790 // "IOS" - An iOS operating system. 1791 OsType string `json:"osType,omitempty"` 1792 1793 // RequireVerifiedChromeOs: Only allows requests from devices with a 1794 // verified Chrome OS. 1795 // Verifications includes requirements that the device is 1796 // enterprise-managed, 1797 // conformant to domain policies, and the caller has permission to 1798 // call 1799 // the API targeted by the request. 1800 RequireVerifiedChromeOs bool `json:"requireVerifiedChromeOs,omitempty"` 1801 1802 // ForceSendFields is a list of field names (e.g. "MinimumVersion") to 1803 // unconditionally include in API requests. By default, fields with 1804 // empty values are omitted from API requests. However, any non-pointer, 1805 // non-interface field appearing in ForceSendFields will be sent to the 1806 // server regardless of whether the field is empty or not. This may be 1807 // used to include empty fields in Patch requests. 1808 ForceSendFields []string `json:"-"` 1809 1810 // NullFields is a list of field names (e.g. "MinimumVersion") to 1811 // include in API requests with the JSON null value. By default, fields 1812 // with empty values are omitted from API requests. However, any field 1813 // with an empty value appearing in NullFields will be sent to the 1814 // server as null. It is an error if a field in this list has a 1815 // non-empty value. This may be used to include null fields in Patch 1816 // requests. 1817 NullFields []string `json:"-"` 1818} 1819 1820func (s *GoogleIdentityAccesscontextmanagerV1OsConstraint) MarshalJSON() ([]byte, error) { 1821 type NoMethod GoogleIdentityAccesscontextmanagerV1OsConstraint 1822 raw := NoMethod(*s) 1823 return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) 1824} 1825 1826// GoogleIdentityAccesscontextmanagerV1ServicePerimeter: 1827// `ServicePerimeter` describes a set of Google Cloud resources which 1828// can freely 1829// import and export data amongst themselves, but not export outside of 1830// the 1831// `ServicePerimeter`. If a request with a source within this 1832// `ServicePerimeter` 1833// has a target outside of the `ServicePerimeter`, the request will be 1834// blocked. 1835// Otherwise the request is allowed. There are two types of Service 1836// Perimeter - 1837// Regular and Bridge. Regular Service Perimeters cannot overlap, a 1838// single 1839// Google Cloud project can only belong to a single regular Service 1840// Perimeter. 1841// Service Perimeter Bridges can contain only Google Cloud projects as 1842// members, 1843// a single Google Cloud project may belong to multiple Service 1844// Perimeter 1845// Bridges. 1846type GoogleIdentityAccesscontextmanagerV1ServicePerimeter struct { 1847 // Description: Description of the `ServicePerimeter` and its use. Does 1848 // not affect 1849 // behavior. 1850 Description string `json:"description,omitempty"` 1851 1852 // Name: Required. Resource name for the ServicePerimeter. The 1853 // `short_name` 1854 // component must begin with a letter and only include alphanumeric and 1855 // '_'. 1856 // Format: `accessPolicies/{policy_id}/servicePerimeters/{short_name}` 1857 Name string `json:"name,omitempty"` 1858 1859 // PerimeterType: Perimeter type indicator. A single project is 1860 // allowed to be a member of single regular perimeter, but multiple 1861 // service 1862 // perimeter bridges. A project cannot be a included in a perimeter 1863 // bridge 1864 // without being included in regular perimeter. For perimeter 1865 // bridges, 1866 // the restricted service list as well as access level lists must 1867 // be 1868 // empty. 1869 // 1870 // Possible values: 1871 // "PERIMETER_TYPE_REGULAR" - Regular Perimeter. 1872 // "PERIMETER_TYPE_BRIDGE" - Perimeter Bridge. 1873 PerimeterType string `json:"perimeterType,omitempty"` 1874 1875 // Spec: Proposed (or dry run) ServicePerimeter configuration. This 1876 // configuration 1877 // allows to specify and test ServicePerimeter configuration without 1878 // enforcing 1879 // actual access restrictions. Only allowed to be set when 1880 // the 1881 // "use_explicit_dry_run_spec" flag is set. 1882 Spec *GoogleIdentityAccesscontextmanagerV1ServicePerimeterConfig `json:"spec,omitempty"` 1883 1884 // Status: Current ServicePerimeter configuration. Specifies sets of 1885 // resources, 1886 // restricted services and access levels that determine 1887 // perimeter 1888 // content and boundaries. 1889 Status *GoogleIdentityAccesscontextmanagerV1ServicePerimeterConfig `json:"status,omitempty"` 1890 1891 // Title: Human readable title. Must be unique within the Policy. 1892 Title string `json:"title,omitempty"` 1893 1894 // UseExplicitDryRunSpec: Use explicit dry run spec flag. Ordinarily, a 1895 // dry-run spec implicitly 1896 // exists for all Service Perimeters, and that spec is identical to 1897 // the 1898 // status for those Service Perimeters. When this flag is set, it 1899 // inhibits the 1900 // generation of the implicit spec, thereby allowing the user to 1901 // explicitly 1902 // provide a configuration ("spec") to use in a dry-run version of the 1903 // Service 1904 // Perimeter. This allows the user to test changes to the enforced 1905 // config 1906 // ("status") without actually enforcing them. This testing is done 1907 // through 1908 // analyzing the differences between currently enforced and 1909 // suggested 1910 // restrictions. use_explicit_dry_run_spec must bet set to True if any 1911 // of the 1912 // fields in the spec are set to non-default values. 1913 UseExplicitDryRunSpec bool `json:"useExplicitDryRunSpec,omitempty"` 1914 1915 // ForceSendFields is a list of field names (e.g. "Description") to 1916 // unconditionally include in API requests. By default, fields with 1917 // empty values are omitted from API requests. However, any non-pointer, 1918 // non-interface field appearing in ForceSendFields will be sent to the 1919 // server regardless of whether the field is empty or not. This may be 1920 // used to include empty fields in Patch requests. 1921 ForceSendFields []string `json:"-"` 1922 1923 // NullFields is a list of field names (e.g. "Description") to include 1924 // in API requests with the JSON null value. By default, fields with 1925 // empty values are omitted from API requests. However, any field with 1926 // an empty value appearing in NullFields will be sent to the server as 1927 // null. It is an error if a field in this list has a non-empty value. 1928 // This may be used to include null fields in Patch requests. 1929 NullFields []string `json:"-"` 1930} 1931 1932func (s *GoogleIdentityAccesscontextmanagerV1ServicePerimeter) MarshalJSON() ([]byte, error) { 1933 type NoMethod GoogleIdentityAccesscontextmanagerV1ServicePerimeter 1934 raw := NoMethod(*s) 1935 return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) 1936} 1937 1938// GoogleIdentityAccesscontextmanagerV1ServicePerimeterConfig: 1939// `ServicePerimeterConfig` specifies a set of Google Cloud resources 1940// that 1941// describe specific Service Perimeter configuration. 1942type GoogleIdentityAccesscontextmanagerV1ServicePerimeterConfig struct { 1943 // AccessLevels: A list of `AccessLevel` resource names that allow 1944 // resources within the 1945 // `ServicePerimeter` to be accessed from the internet. `AccessLevels` 1946 // listed 1947 // must be in the same policy as this `ServicePerimeter`. Referencing 1948 // a 1949 // nonexistent `AccessLevel` is a syntax error. If no `AccessLevel` 1950 // names are 1951 // listed, resources within the perimeter can only be accessed via 1952 // Google 1953 // Cloud calls with request origins within the perimeter. 1954 // Example: 1955 // "accessPolicies/MY_POLICY/accessLevels/MY_LEVEL". 1956 // For Service Perimeter Bridge, must be empty. 1957 AccessLevels []string `json:"accessLevels,omitempty"` 1958 1959 // Resources: A list of Google Cloud resources that are inside of the 1960 // service perimeter. 1961 // Currently only projects are allowed. Format: 1962 // `projects/{project_number}` 1963 Resources []string `json:"resources,omitempty"` 1964 1965 // RestrictedServices: Google Cloud services that are subject to the 1966 // Service Perimeter 1967 // restrictions. For example, if `storage.googleapis.com` is specified, 1968 // access 1969 // to the storage buckets inside the perimeter must meet the 1970 // perimeter's 1971 // access restrictions. 1972 RestrictedServices []string `json:"restrictedServices,omitempty"` 1973 1974 // VpcAccessibleServices: Configuration for APIs allowed within 1975 // Perimeter. 1976 VpcAccessibleServices *GoogleIdentityAccesscontextmanagerV1VpcAccessibleServices `json:"vpcAccessibleServices,omitempty"` 1977 1978 // ForceSendFields is a list of field names (e.g. "AccessLevels") to 1979 // unconditionally include in API requests. By default, fields with 1980 // empty values are omitted from API requests. However, any non-pointer, 1981 // non-interface field appearing in ForceSendFields will be sent to the 1982 // server regardless of whether the field is empty or not. This may be 1983 // used to include empty fields in Patch requests. 1984 ForceSendFields []string `json:"-"` 1985 1986 // NullFields is a list of field names (e.g. "AccessLevels") to include 1987 // in API requests with the JSON null value. By default, fields with 1988 // empty values are omitted from API requests. However, any field with 1989 // an empty value appearing in NullFields will be sent to the server as 1990 // null. It is an error if a field in this list has a non-empty value. 1991 // This may be used to include null fields in Patch requests. 1992 NullFields []string `json:"-"` 1993} 1994 1995func (s *GoogleIdentityAccesscontextmanagerV1ServicePerimeterConfig) MarshalJSON() ([]byte, error) { 1996 type NoMethod GoogleIdentityAccesscontextmanagerV1ServicePerimeterConfig 1997 raw := NoMethod(*s) 1998 return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) 1999} 2000 2001// GoogleIdentityAccesscontextmanagerV1VpcAccessibleServices: Specifies 2002// how APIs are allowed to communicate within the Service 2003// Perimeter. 2004type GoogleIdentityAccesscontextmanagerV1VpcAccessibleServices struct { 2005 // AllowedServices: The list of APIs usable within the Service 2006 // Perimeter. Must be empty 2007 // unless 'enable_restriction' is True. 2008 AllowedServices []string `json:"allowedServices,omitempty"` 2009 2010 // EnableRestriction: Whether to restrict API calls within the Service 2011 // Perimeter to the list of 2012 // APIs specified in 'allowed_services'. 2013 EnableRestriction bool `json:"enableRestriction,omitempty"` 2014 2015 // ForceSendFields is a list of field names (e.g. "AllowedServices") to 2016 // unconditionally include in API requests. By default, fields with 2017 // empty values are omitted from API requests. However, any non-pointer, 2018 // non-interface field appearing in ForceSendFields will be sent to the 2019 // server regardless of whether the field is empty or not. This may be 2020 // used to include empty fields in Patch requests. 2021 ForceSendFields []string `json:"-"` 2022 2023 // NullFields is a list of field names (e.g. "AllowedServices") to 2024 // include in API requests with the JSON null value. By default, fields 2025 // with empty values are omitted from API requests. However, any field 2026 // with an empty value appearing in NullFields will be sent to the 2027 // server as null. It is an error if a field in this list has a 2028 // non-empty value. This may be used to include null fields in Patch 2029 // requests. 2030 NullFields []string `json:"-"` 2031} 2032 2033func (s *GoogleIdentityAccesscontextmanagerV1VpcAccessibleServices) MarshalJSON() ([]byte, error) { 2034 type NoMethod GoogleIdentityAccesscontextmanagerV1VpcAccessibleServices 2035 raw := NoMethod(*s) 2036 return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) 2037} 2038 2039type ListFeedsResponse struct { 2040 // Feeds: A list of feeds. 2041 Feeds []*Feed `json:"feeds,omitempty"` 2042 2043 // ServerResponse contains the HTTP response code and headers from the 2044 // server. 2045 googleapi.ServerResponse `json:"-"` 2046 2047 // ForceSendFields is a list of field names (e.g. "Feeds") to 2048 // unconditionally include in API requests. By default, fields with 2049 // empty values are omitted from API requests. However, any non-pointer, 2050 // non-interface field appearing in ForceSendFields will be sent to the 2051 // server regardless of whether the field is empty or not. This may be 2052 // used to include empty fields in Patch requests. 2053 ForceSendFields []string `json:"-"` 2054 2055 // NullFields is a list of field names (e.g. "Feeds") to include in API 2056 // requests with the JSON null value. By default, fields with empty 2057 // values are omitted from API requests. However, any field with an 2058 // empty value appearing in NullFields will be sent to the server as 2059 // null. It is an error if a field in this list has a non-empty value. 2060 // This may be used to include null fields in Patch requests. 2061 NullFields []string `json:"-"` 2062} 2063 2064func (s *ListFeedsResponse) MarshalJSON() ([]byte, error) { 2065 type NoMethod ListFeedsResponse 2066 raw := NoMethod(*s) 2067 return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) 2068} 2069 2070// Operation: This resource represents a long-running operation that is 2071// the result of a 2072// network API call. 2073type Operation struct { 2074 // Done: If the value is `false`, it means the operation is still in 2075 // progress. 2076 // If `true`, the operation is completed, and either `error` or 2077 // `response` is 2078 // available. 2079 Done bool `json:"done,omitempty"` 2080 2081 // Error: The error result of the operation in case of failure or 2082 // cancellation. 2083 Error *Status `json:"error,omitempty"` 2084 2085 // Metadata: Service-specific metadata associated with the operation. 2086 // It typically 2087 // contains progress information and common metadata such as create 2088 // time. 2089 // Some services might not provide such metadata. Any method that 2090 // returns a 2091 // long-running operation should document the metadata type, if any. 2092 Metadata googleapi.RawMessage `json:"metadata,omitempty"` 2093 2094 // Name: The server-assigned name, which is only unique within the same 2095 // service that 2096 // originally returns it. If you use the default HTTP mapping, 2097 // the 2098 // `name` should be a resource name ending with 2099 // `operations/{unique_id}`. 2100 Name string `json:"name,omitempty"` 2101 2102 // Response: The normal response of the operation in case of success. 2103 // If the original 2104 // method returns no data on success, such as `Delete`, the response 2105 // is 2106 // `google.protobuf.Empty`. If the original method is 2107 // standard 2108 // `Get`/`Create`/`Update`, the response should be the resource. For 2109 // other 2110 // methods, the response should have the type `XxxResponse`, where 2111 // `Xxx` 2112 // is the original method name. For example, if the original method 2113 // name 2114 // is `TakeSnapshot()`, the inferred response type 2115 // is 2116 // `TakeSnapshotResponse`. 2117 Response googleapi.RawMessage `json:"response,omitempty"` 2118 2119 // ServerResponse contains the HTTP response code and headers from the 2120 // server. 2121 googleapi.ServerResponse `json:"-"` 2122 2123 // ForceSendFields is a list of field names (e.g. "Done") to 2124 // unconditionally include in API requests. By default, fields with 2125 // empty values are omitted from API requests. However, any non-pointer, 2126 // non-interface field appearing in ForceSendFields will be sent to the 2127 // server regardless of whether the field is empty or not. This may be 2128 // used to include empty fields in Patch requests. 2129 ForceSendFields []string `json:"-"` 2130 2131 // NullFields is a list of field names (e.g. "Done") to include in API 2132 // requests with the JSON null value. By default, fields with empty 2133 // values are omitted from API requests. However, any field with an 2134 // empty value appearing in NullFields will be sent to the server as 2135 // null. It is an error if a field in this list has a non-empty value. 2136 // This may be used to include null fields in Patch requests. 2137 NullFields []string `json:"-"` 2138} 2139 2140func (s *Operation) MarshalJSON() ([]byte, error) { 2141 type NoMethod Operation 2142 raw := NoMethod(*s) 2143 return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) 2144} 2145 2146// OutputConfig: Output configuration for export assets destination. 2147type OutputConfig struct { 2148 // BigqueryDestination: Destination on BigQuery. The output table stores 2149 // the fields in asset 2150 // proto as columns in BigQuery. The resource/iam_policy field is 2151 // converted 2152 // to a record with each field to a column, except metadata to a single 2153 // JSON 2154 // string. 2155 BigqueryDestination *BigQueryDestination `json:"bigqueryDestination,omitempty"` 2156 2157 // GcsDestination: Destination on Cloud Storage. 2158 GcsDestination *GcsDestination `json:"gcsDestination,omitempty"` 2159 2160 // ForceSendFields is a list of field names (e.g. "BigqueryDestination") 2161 // to unconditionally include in API requests. By default, fields with 2162 // empty values are omitted from API requests. However, any non-pointer, 2163 // non-interface field appearing in ForceSendFields will be sent to the 2164 // server regardless of whether the field is empty or not. This may be 2165 // used to include empty fields in Patch requests. 2166 ForceSendFields []string `json:"-"` 2167 2168 // NullFields is a list of field names (e.g. "BigqueryDestination") to 2169 // include in API requests with the JSON null value. By default, fields 2170 // with empty values are omitted from API requests. However, any field 2171 // with an empty value appearing in NullFields will be sent to the 2172 // server as null. It is an error if a field in this list has a 2173 // non-empty value. This may be used to include null fields in Patch 2174 // requests. 2175 NullFields []string `json:"-"` 2176} 2177 2178func (s *OutputConfig) MarshalJSON() ([]byte, error) { 2179 type NoMethod OutputConfig 2180 raw := NoMethod(*s) 2181 return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) 2182} 2183 2184// Policy: An Identity and Access Management (IAM) policy, which 2185// specifies access 2186// controls for Google Cloud resources. 2187// 2188// 2189// A `Policy` is a collection of `bindings`. A `binding` binds one or 2190// more 2191// `members` to a single `role`. Members can be user accounts, service 2192// accounts, 2193// Google groups, and domains (such as G Suite). A `role` is a named 2194// list of 2195// permissions; each `role` can be an IAM predefined role or a 2196// user-created 2197// custom role. 2198// 2199// Optionally, a `binding` can specify a `condition`, which is a 2200// logical 2201// expression that allows access to a resource only if the expression 2202// evaluates 2203// to `true`. A condition can add constraints based on attributes of 2204// the 2205// request, the resource, or both. 2206// 2207// **JSON example:** 2208// 2209// { 2210// "bindings": [ 2211// { 2212// "role": "roles/resourcemanager.organizationAdmin", 2213// "members": [ 2214// "user:mike@example.com", 2215// "group:admins@example.com", 2216// "domain:google.com", 2217// 2218// "serviceAccount:my-project-id@appspot.gserviceaccount.com" 2219// ] 2220// }, 2221// { 2222// "role": "roles/resourcemanager.organizationViewer", 2223// "members": ["user:eve@example.com"], 2224// "condition": { 2225// "title": "expirable access", 2226// "description": "Does not grant access after Sep 2020", 2227// "expression": "request.time < 2228// timestamp('2020-10-01T00:00:00.000Z')", 2229// } 2230// } 2231// ], 2232// "etag": "BwWWja0YfJA=", 2233// "version": 3 2234// } 2235// 2236// **YAML example:** 2237// 2238// bindings: 2239// - members: 2240// - user:mike@example.com 2241// - group:admins@example.com 2242// - domain:google.com 2243// - serviceAccount:my-project-id@appspot.gserviceaccount.com 2244// role: roles/resourcemanager.organizationAdmin 2245// - members: 2246// - user:eve@example.com 2247// role: roles/resourcemanager.organizationViewer 2248// condition: 2249// title: expirable access 2250// description: Does not grant access after Sep 2020 2251// expression: request.time < 2252// timestamp('2020-10-01T00:00:00.000Z') 2253// - etag: BwWWja0YfJA= 2254// - version: 3 2255// 2256// For a description of IAM and its features, see the 2257// [IAM documentation](https://cloud.google.com/iam/docs/). 2258type Policy struct { 2259 // AuditConfigs: Specifies cloud audit logging configuration for this 2260 // policy. 2261 AuditConfigs []*AuditConfig `json:"auditConfigs,omitempty"` 2262 2263 // Bindings: Associates a list of `members` to a `role`. Optionally, may 2264 // specify a 2265 // `condition` that determines how and when the `bindings` are applied. 2266 // Each 2267 // of the `bindings` must contain at least one member. 2268 Bindings []*Binding `json:"bindings,omitempty"` 2269 2270 // Etag: `etag` is used for optimistic concurrency control as a way to 2271 // help 2272 // prevent simultaneous updates of a policy from overwriting each 2273 // other. 2274 // It is strongly suggested that systems make use of the `etag` in 2275 // the 2276 // read-modify-write cycle to perform policy updates in order to avoid 2277 // race 2278 // conditions: An `etag` is returned in the response to `getIamPolicy`, 2279 // and 2280 // systems are expected to put that etag in the request to 2281 // `setIamPolicy` to 2282 // ensure that their change will be applied to the same version of the 2283 // policy. 2284 // 2285 // **Important:** If you use IAM Conditions, you must include the `etag` 2286 // field 2287 // whenever you call `setIamPolicy`. If you omit this field, then IAM 2288 // allows 2289 // you to overwrite a version `3` policy with a version `1` policy, and 2290 // all of 2291 // the conditions in the version `3` policy are lost. 2292 Etag string `json:"etag,omitempty"` 2293 2294 // Version: Specifies the format of the policy. 2295 // 2296 // Valid values are `0`, `1`, and `3`. Requests that specify an invalid 2297 // value 2298 // are rejected. 2299 // 2300 // Any operation that affects conditional role bindings must specify 2301 // version 2302 // `3`. This requirement applies to the following operations: 2303 // 2304 // * Getting a policy that includes a conditional role binding 2305 // * Adding a conditional role binding to a policy 2306 // * Changing a conditional role binding in a policy 2307 // * Removing any role binding, with or without a condition, from a 2308 // policy 2309 // that includes conditions 2310 // 2311 // **Important:** If you use IAM Conditions, you must include the `etag` 2312 // field 2313 // whenever you call `setIamPolicy`. If you omit this field, then IAM 2314 // allows 2315 // you to overwrite a version `3` policy with a version `1` policy, and 2316 // all of 2317 // the conditions in the version `3` policy are lost. 2318 // 2319 // If a policy does not include any conditions, operations on that 2320 // policy may 2321 // specify any valid version or leave the field unset. 2322 Version int64 `json:"version,omitempty"` 2323 2324 // ForceSendFields is a list of field names (e.g. "AuditConfigs") to 2325 // unconditionally include in API requests. By default, fields with 2326 // empty values are omitted from API requests. However, any non-pointer, 2327 // non-interface field appearing in ForceSendFields will be sent to the 2328 // server regardless of whether the field is empty or not. This may be 2329 // used to include empty fields in Patch requests. 2330 ForceSendFields []string `json:"-"` 2331 2332 // NullFields is a list of field names (e.g. "AuditConfigs") to include 2333 // in API requests with the JSON null value. By default, fields with 2334 // empty values are omitted from API requests. However, any field with 2335 // an empty value appearing in NullFields will be sent to the server as 2336 // null. It is an error if a field in this list has a non-empty value. 2337 // This may be used to include null fields in Patch requests. 2338 NullFields []string `json:"-"` 2339} 2340 2341func (s *Policy) MarshalJSON() ([]byte, error) { 2342 type NoMethod Policy 2343 raw := NoMethod(*s) 2344 return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) 2345} 2346 2347// PubsubDestination: A Pub/Sub destination. 2348type PubsubDestination struct { 2349 // Topic: The name of the Pub/Sub topic to publish to. 2350 // For example: `projects/PROJECT_ID/topics/TOPIC_ID`. 2351 Topic string `json:"topic,omitempty"` 2352 2353 // ForceSendFields is a list of field names (e.g. "Topic") to 2354 // unconditionally include in API requests. By default, fields with 2355 // empty values are omitted from API requests. However, any non-pointer, 2356 // non-interface field appearing in ForceSendFields will be sent to the 2357 // server regardless of whether the field is empty or not. This may be 2358 // used to include empty fields in Patch requests. 2359 ForceSendFields []string `json:"-"` 2360 2361 // NullFields is a list of field names (e.g. "Topic") to include in API 2362 // requests with the JSON null value. By default, fields with empty 2363 // values are omitted from API requests. However, any field with an 2364 // empty value appearing in NullFields will be sent to the server as 2365 // null. It is an error if a field in this list has a non-empty value. 2366 // This may be used to include null fields in Patch requests. 2367 NullFields []string `json:"-"` 2368} 2369 2370func (s *PubsubDestination) MarshalJSON() ([]byte, error) { 2371 type NoMethod PubsubDestination 2372 raw := NoMethod(*s) 2373 return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) 2374} 2375 2376// Resource: A representation of a Google Cloud resource. 2377type Resource struct { 2378 // Data: The content of the resource, in which some sensitive fields are 2379 // removed 2380 // and may not be present. 2381 Data googleapi.RawMessage `json:"data,omitempty"` 2382 2383 // DiscoveryDocumentUri: The URL of the discovery document containing 2384 // the resource's JSON schema. 2385 // For 2386 // example: 2387 // "https://www.googleapis.com/discovery/v1/apis/compute/v1/rest 2388 // " 2389 // 2390 // This value is unspecified for resources that do not have an API based 2391 // on a 2392 // discovery document, such as Cloud Bigtable. 2393 DiscoveryDocumentUri string `json:"discoveryDocumentUri,omitempty"` 2394 2395 // DiscoveryName: The JSON schema name listed in the discovery document. 2396 // For example: 2397 // "Project" 2398 // 2399 // This value is unspecified for resources that do not have an API based 2400 // on a 2401 // discovery document, such as Cloud Bigtable. 2402 DiscoveryName string `json:"discoveryName,omitempty"` 2403 2404 // Parent: The full name of the immediate parent of this resource. 2405 // See 2406 // [Resource 2407 // Names](https://cloud.google.com/apis/design/resource_nam 2408 // es#full_resource_name) 2409 // for more information. 2410 // 2411 // For Google Cloud assets, this value is the parent resource defined in 2412 // the 2413 // [Cloud IAM 2414 // policy 2415 // hierarchy](https://cloud.google.com/iam/docs/overview#policy_hi 2416 // erarchy). 2417 // For 2418 // example: 2419 // "//cloudresourcemanager.googleapis.com/projects/my_project_12 2420 // 3" 2421 // 2422 // For third-party assets, this field may be set differently. 2423 Parent string `json:"parent,omitempty"` 2424 2425 // ResourceUrl: The REST URL for accessing the resource. An HTTP `GET` 2426 // request using this 2427 // URL returns the resource itself. For 2428 // example: 2429 // "https://cloudresourcemanager.googleapis.com/v1/projects/my-p 2430 // roject-123" 2431 // 2432 // This value is unspecified for resources without a REST API. 2433 ResourceUrl string `json:"resourceUrl,omitempty"` 2434 2435 // Version: The API version. For example: "v1" 2436 Version string `json:"version,omitempty"` 2437 2438 // ForceSendFields is a list of field names (e.g. "Data") to 2439 // unconditionally include in API requests. By default, fields with 2440 // empty values are omitted from API requests. However, any non-pointer, 2441 // non-interface field appearing in ForceSendFields will be sent to the 2442 // server regardless of whether the field is empty or not. This may be 2443 // used to include empty fields in Patch requests. 2444 ForceSendFields []string `json:"-"` 2445 2446 // NullFields is a list of field names (e.g. "Data") to include in API 2447 // requests with the JSON null value. By default, fields with empty 2448 // values are omitted from API requests. However, any field with an 2449 // empty value appearing in NullFields will be sent to the server as 2450 // null. It is an error if a field in this list has a non-empty value. 2451 // This may be used to include null fields in Patch requests. 2452 NullFields []string `json:"-"` 2453} 2454 2455func (s *Resource) MarshalJSON() ([]byte, error) { 2456 type NoMethod Resource 2457 raw := NoMethod(*s) 2458 return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) 2459} 2460 2461// Status: The `Status` type defines a logical error model that is 2462// suitable for 2463// different programming environments, including REST APIs and RPC APIs. 2464// It is 2465// used by [gRPC](https://github.com/grpc). Each `Status` message 2466// contains 2467// three pieces of data: error code, error message, and error 2468// details. 2469// 2470// You can find out more about this error model and how to work with it 2471// in the 2472// [API Design Guide](https://cloud.google.com/apis/design/errors). 2473type Status struct { 2474 // Code: The status code, which should be an enum value of 2475 // google.rpc.Code. 2476 Code int64 `json:"code,omitempty"` 2477 2478 // Details: A list of messages that carry the error details. There is a 2479 // common set of 2480 // message types for APIs to use. 2481 Details []googleapi.RawMessage `json:"details,omitempty"` 2482 2483 // Message: A developer-facing error message, which should be in 2484 // English. Any 2485 // user-facing error message should be localized and sent in 2486 // the 2487 // google.rpc.Status.details field, or localized by the client. 2488 Message string `json:"message,omitempty"` 2489 2490 // ForceSendFields is a list of field names (e.g. "Code") to 2491 // unconditionally include in API requests. By default, fields with 2492 // empty values are omitted from API requests. However, any non-pointer, 2493 // non-interface field appearing in ForceSendFields will be sent to the 2494 // server regardless of whether the field is empty or not. This may be 2495 // used to include empty fields in Patch requests. 2496 ForceSendFields []string `json:"-"` 2497 2498 // NullFields is a list of field names (e.g. "Code") to include in API 2499 // requests with the JSON null value. By default, fields with empty 2500 // values are omitted from API requests. However, any field with an 2501 // empty value appearing in NullFields will be sent to the server as 2502 // null. It is an error if a field in this list has a non-empty value. 2503 // This may be used to include null fields in Patch requests. 2504 NullFields []string `json:"-"` 2505} 2506 2507func (s *Status) MarshalJSON() ([]byte, error) { 2508 type NoMethod Status 2509 raw := NoMethod(*s) 2510 return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) 2511} 2512 2513// TemporalAsset: An asset in Google Cloud and its temporal metadata, 2514// including the time window 2515// when it was observed and its status during that window. 2516type TemporalAsset struct { 2517 // Asset: An asset in Google Cloud. 2518 Asset *Asset `json:"asset,omitempty"` 2519 2520 // Deleted: Whether the asset has been deleted or not. 2521 Deleted bool `json:"deleted,omitempty"` 2522 2523 // Window: The time window when the asset data and state was observed. 2524 Window *TimeWindow `json:"window,omitempty"` 2525 2526 // ForceSendFields is a list of field names (e.g. "Asset") to 2527 // unconditionally include in API requests. By default, fields with 2528 // empty values are omitted from API requests. However, any non-pointer, 2529 // non-interface field appearing in ForceSendFields will be sent to the 2530 // server regardless of whether the field is empty or not. This may be 2531 // used to include empty fields in Patch requests. 2532 ForceSendFields []string `json:"-"` 2533 2534 // NullFields is a list of field names (e.g. "Asset") to include in API 2535 // requests with the JSON null value. By default, fields with empty 2536 // values are omitted from API requests. However, any field with an 2537 // empty value appearing in NullFields will be sent to the server as 2538 // null. It is an error if a field in this list has a non-empty value. 2539 // This may be used to include null fields in Patch requests. 2540 NullFields []string `json:"-"` 2541} 2542 2543func (s *TemporalAsset) MarshalJSON() ([]byte, error) { 2544 type NoMethod TemporalAsset 2545 raw := NoMethod(*s) 2546 return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) 2547} 2548 2549// TimeWindow: A time window specified by its "start_time" and 2550// "end_time". 2551type TimeWindow struct { 2552 // EndTime: End time of the time window (inclusive). If not specified, 2553 // the current 2554 // timestamp is used instead. 2555 EndTime string `json:"endTime,omitempty"` 2556 2557 // StartTime: Start time of the time window (exclusive). 2558 StartTime string `json:"startTime,omitempty"` 2559 2560 // ForceSendFields is a list of field names (e.g. "EndTime") to 2561 // unconditionally include in API requests. By default, fields with 2562 // empty values are omitted from API requests. However, any non-pointer, 2563 // non-interface field appearing in ForceSendFields will be sent to the 2564 // server regardless of whether the field is empty or not. This may be 2565 // used to include empty fields in Patch requests. 2566 ForceSendFields []string `json:"-"` 2567 2568 // NullFields is a list of field names (e.g. "EndTime") to include in 2569 // API requests with the JSON null value. By default, fields with empty 2570 // values are omitted from API requests. However, any field with an 2571 // empty value appearing in NullFields will be sent to the server as 2572 // null. It is an error if a field in this list has a non-empty value. 2573 // This may be used to include null fields in Patch requests. 2574 NullFields []string `json:"-"` 2575} 2576 2577func (s *TimeWindow) MarshalJSON() ([]byte, error) { 2578 type NoMethod TimeWindow 2579 raw := NoMethod(*s) 2580 return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) 2581} 2582 2583// UpdateFeedRequest: Update asset feed request. 2584type UpdateFeedRequest struct { 2585 // Feed: Required. The new values of feed details. It must match an 2586 // existing feed and the 2587 // field `name` must be in the format 2588 // of: 2589 // projects/project_number/feeds/feed_id 2590 // or 2591 // folders/folder_number/feeds/feed_id 2592 // or 2593 // organizations/organization_number/feeds/feed_id. 2594 Feed *Feed `json:"feed,omitempty"` 2595 2596 // UpdateMask: Required. Only updates the `feed` fields indicated by 2597 // this mask. 2598 // The field mask must not be empty, and it must not contain fields 2599 // that 2600 // are immutable or only set by the server. 2601 UpdateMask string `json:"updateMask,omitempty"` 2602 2603 // ForceSendFields is a list of field names (e.g. "Feed") to 2604 // unconditionally include in API requests. By default, fields with 2605 // empty values are omitted from API requests. However, any non-pointer, 2606 // non-interface field appearing in ForceSendFields will be sent to the 2607 // server regardless of whether the field is empty or not. This may be 2608 // used to include empty fields in Patch requests. 2609 ForceSendFields []string `json:"-"` 2610 2611 // NullFields is a list of field names (e.g. "Feed") to include in API 2612 // requests with the JSON null value. By default, fields with empty 2613 // values are omitted from API requests. However, any field with an 2614 // empty value appearing in NullFields will be sent to the server as 2615 // null. It is an error if a field in this list has a non-empty value. 2616 // This may be used to include null fields in Patch requests. 2617 NullFields []string `json:"-"` 2618} 2619 2620func (s *UpdateFeedRequest) MarshalJSON() ([]byte, error) { 2621 type NoMethod UpdateFeedRequest 2622 raw := NoMethod(*s) 2623 return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) 2624} 2625 2626// method id "cloudasset.feeds.create": 2627 2628type FeedsCreateCall struct { 2629 s *Service 2630 parent string 2631 createfeedrequest *CreateFeedRequest 2632 urlParams_ gensupport.URLParams 2633 ctx_ context.Context 2634 header_ http.Header 2635} 2636 2637// Create: Creates a feed in a parent project/folder/organization to 2638// listen to its 2639// asset updates. 2640func (r *FeedsService) Create(parent string, createfeedrequest *CreateFeedRequest) *FeedsCreateCall { 2641 c := &FeedsCreateCall{s: r.s, urlParams_: make(gensupport.URLParams)} 2642 c.parent = parent 2643 c.createfeedrequest = createfeedrequest 2644 return c 2645} 2646 2647// Fields allows partial responses to be retrieved. See 2648// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse 2649// for more information. 2650func (c *FeedsCreateCall) Fields(s ...googleapi.Field) *FeedsCreateCall { 2651 c.urlParams_.Set("fields", googleapi.CombineFields(s)) 2652 return c 2653} 2654 2655// Context sets the context to be used in this call's Do method. Any 2656// pending HTTP request will be aborted if the provided context is 2657// canceled. 2658func (c *FeedsCreateCall) Context(ctx context.Context) *FeedsCreateCall { 2659 c.ctx_ = ctx 2660 return c 2661} 2662 2663// Header returns an http.Header that can be modified by the caller to 2664// add HTTP headers to the request. 2665func (c *FeedsCreateCall) Header() http.Header { 2666 if c.header_ == nil { 2667 c.header_ = make(http.Header) 2668 } 2669 return c.header_ 2670} 2671 2672func (c *FeedsCreateCall) doRequest(alt string) (*http.Response, error) { 2673 reqHeaders := make(http.Header) 2674 reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503") 2675 for k, v := range c.header_ { 2676 reqHeaders[k] = v 2677 } 2678 reqHeaders.Set("User-Agent", c.s.userAgent()) 2679 var body io.Reader = nil 2680 body, err := googleapi.WithoutDataWrapper.JSONReader(c.createfeedrequest) 2681 if err != nil { 2682 return nil, err 2683 } 2684 reqHeaders.Set("Content-Type", "application/json") 2685 c.urlParams_.Set("alt", alt) 2686 c.urlParams_.Set("prettyPrint", "false") 2687 urls := googleapi.ResolveRelative(c.s.BasePath, "v1/{+parent}/feeds") 2688 urls += "?" + c.urlParams_.Encode() 2689 req, err := http.NewRequest("POST", urls, body) 2690 if err != nil { 2691 return nil, err 2692 } 2693 req.Header = reqHeaders 2694 googleapi.Expand(req.URL, map[string]string{ 2695 "parent": c.parent, 2696 }) 2697 return gensupport.SendRequest(c.ctx_, c.s.client, req) 2698} 2699 2700// Do executes the "cloudasset.feeds.create" call. 2701// Exactly one of *Feed or error will be non-nil. Any non-2xx status 2702// code is an error. Response headers are in either 2703// *Feed.ServerResponse.Header or (if a response was returned at all) in 2704// error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check 2705// whether the returned error was because http.StatusNotModified was 2706// returned. 2707func (c *FeedsCreateCall) Do(opts ...googleapi.CallOption) (*Feed, error) { 2708 gensupport.SetOptions(c.urlParams_, opts...) 2709 res, err := c.doRequest("json") 2710 if res != nil && res.StatusCode == http.StatusNotModified { 2711 if res.Body != nil { 2712 res.Body.Close() 2713 } 2714 return nil, &googleapi.Error{ 2715 Code: res.StatusCode, 2716 Header: res.Header, 2717 } 2718 } 2719 if err != nil { 2720 return nil, err 2721 } 2722 defer googleapi.CloseBody(res) 2723 if err := googleapi.CheckResponse(res); err != nil { 2724 return nil, err 2725 } 2726 ret := &Feed{ 2727 ServerResponse: googleapi.ServerResponse{ 2728 Header: res.Header, 2729 HTTPStatusCode: res.StatusCode, 2730 }, 2731 } 2732 target := &ret 2733 if err := gensupport.DecodeResponse(target, res); err != nil { 2734 return nil, err 2735 } 2736 return ret, nil 2737 // { 2738 // "description": "Creates a feed in a parent project/folder/organization to listen to its\nasset updates.", 2739 // "flatPath": "v1/{v1Id}/{v1Id1}/feeds", 2740 // "httpMethod": "POST", 2741 // "id": "cloudasset.feeds.create", 2742 // "parameterOrder": [ 2743 // "parent" 2744 // ], 2745 // "parameters": { 2746 // "parent": { 2747 // "description": "Required. The name of the project/folder/organization where this feed\nshould be created in. It can only be an organization number (such as\n\"organizations/123\"), a folder number (such as \"folders/123\"), a project ID\n(such as \"projects/my-project-id\")\", or a project number (such as\n\"projects/12345\").", 2748 // "location": "path", 2749 // "pattern": "^[^/]+/[^/]+$", 2750 // "required": true, 2751 // "type": "string" 2752 // } 2753 // }, 2754 // "path": "v1/{+parent}/feeds", 2755 // "request": { 2756 // "$ref": "CreateFeedRequest" 2757 // }, 2758 // "response": { 2759 // "$ref": "Feed" 2760 // }, 2761 // "scopes": [ 2762 // "https://www.googleapis.com/auth/cloud-platform" 2763 // ] 2764 // } 2765 2766} 2767 2768// method id "cloudasset.feeds.delete": 2769 2770type FeedsDeleteCall struct { 2771 s *Service 2772 name string 2773 urlParams_ gensupport.URLParams 2774 ctx_ context.Context 2775 header_ http.Header 2776} 2777 2778// Delete: Deletes an asset feed. 2779func (r *FeedsService) Delete(name string) *FeedsDeleteCall { 2780 c := &FeedsDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)} 2781 c.name = name 2782 return c 2783} 2784 2785// Fields allows partial responses to be retrieved. See 2786// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse 2787// for more information. 2788func (c *FeedsDeleteCall) Fields(s ...googleapi.Field) *FeedsDeleteCall { 2789 c.urlParams_.Set("fields", googleapi.CombineFields(s)) 2790 return c 2791} 2792 2793// Context sets the context to be used in this call's Do method. Any 2794// pending HTTP request will be aborted if the provided context is 2795// canceled. 2796func (c *FeedsDeleteCall) Context(ctx context.Context) *FeedsDeleteCall { 2797 c.ctx_ = ctx 2798 return c 2799} 2800 2801// Header returns an http.Header that can be modified by the caller to 2802// add HTTP headers to the request. 2803func (c *FeedsDeleteCall) Header() http.Header { 2804 if c.header_ == nil { 2805 c.header_ = make(http.Header) 2806 } 2807 return c.header_ 2808} 2809 2810func (c *FeedsDeleteCall) doRequest(alt string) (*http.Response, error) { 2811 reqHeaders := make(http.Header) 2812 reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503") 2813 for k, v := range c.header_ { 2814 reqHeaders[k] = v 2815 } 2816 reqHeaders.Set("User-Agent", c.s.userAgent()) 2817 var body io.Reader = nil 2818 c.urlParams_.Set("alt", alt) 2819 c.urlParams_.Set("prettyPrint", "false") 2820 urls := googleapi.ResolveRelative(c.s.BasePath, "v1/{+name}") 2821 urls += "?" + c.urlParams_.Encode() 2822 req, err := http.NewRequest("DELETE", urls, body) 2823 if err != nil { 2824 return nil, err 2825 } 2826 req.Header = reqHeaders 2827 googleapi.Expand(req.URL, map[string]string{ 2828 "name": c.name, 2829 }) 2830 return gensupport.SendRequest(c.ctx_, c.s.client, req) 2831} 2832 2833// Do executes the "cloudasset.feeds.delete" call. 2834// Exactly one of *Empty or error will be non-nil. Any non-2xx status 2835// code is an error. Response headers are in either 2836// *Empty.ServerResponse.Header or (if a response was returned at all) 2837// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to 2838// check whether the returned error was because http.StatusNotModified 2839// was returned. 2840func (c *FeedsDeleteCall) Do(opts ...googleapi.CallOption) (*Empty, error) { 2841 gensupport.SetOptions(c.urlParams_, opts...) 2842 res, err := c.doRequest("json") 2843 if res != nil && res.StatusCode == http.StatusNotModified { 2844 if res.Body != nil { 2845 res.Body.Close() 2846 } 2847 return nil, &googleapi.Error{ 2848 Code: res.StatusCode, 2849 Header: res.Header, 2850 } 2851 } 2852 if err != nil { 2853 return nil, err 2854 } 2855 defer googleapi.CloseBody(res) 2856 if err := googleapi.CheckResponse(res); err != nil { 2857 return nil, err 2858 } 2859 ret := &Empty{ 2860 ServerResponse: googleapi.ServerResponse{ 2861 Header: res.Header, 2862 HTTPStatusCode: res.StatusCode, 2863 }, 2864 } 2865 target := &ret 2866 if err := gensupport.DecodeResponse(target, res); err != nil { 2867 return nil, err 2868 } 2869 return ret, nil 2870 // { 2871 // "description": "Deletes an asset feed.", 2872 // "flatPath": "v1/{v1Id}/{v1Id1}/feeds/{feedsId}", 2873 // "httpMethod": "DELETE", 2874 // "id": "cloudasset.feeds.delete", 2875 // "parameterOrder": [ 2876 // "name" 2877 // ], 2878 // "parameters": { 2879 // "name": { 2880 // "description": "Required. The name of the feed and it must be in the format of:\nprojects/project_number/feeds/feed_id\nfolders/folder_number/feeds/feed_id\norganizations/organization_number/feeds/feed_id", 2881 // "location": "path", 2882 // "pattern": "^[^/]+/[^/]+/feeds/[^/]+$", 2883 // "required": true, 2884 // "type": "string" 2885 // } 2886 // }, 2887 // "path": "v1/{+name}", 2888 // "response": { 2889 // "$ref": "Empty" 2890 // }, 2891 // "scopes": [ 2892 // "https://www.googleapis.com/auth/cloud-platform" 2893 // ] 2894 // } 2895 2896} 2897 2898// method id "cloudasset.feeds.get": 2899 2900type FeedsGetCall struct { 2901 s *Service 2902 name string 2903 urlParams_ gensupport.URLParams 2904 ifNoneMatch_ string 2905 ctx_ context.Context 2906 header_ http.Header 2907} 2908 2909// Get: Gets details about an asset feed. 2910func (r *FeedsService) Get(name string) *FeedsGetCall { 2911 c := &FeedsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)} 2912 c.name = name 2913 return c 2914} 2915 2916// Fields allows partial responses to be retrieved. See 2917// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse 2918// for more information. 2919func (c *FeedsGetCall) Fields(s ...googleapi.Field) *FeedsGetCall { 2920 c.urlParams_.Set("fields", googleapi.CombineFields(s)) 2921 return c 2922} 2923 2924// IfNoneMatch sets the optional parameter which makes the operation 2925// fail if the object's ETag matches the given value. This is useful for 2926// getting updates only after the object has changed since the last 2927// request. Use googleapi.IsNotModified to check whether the response 2928// error from Do is the result of In-None-Match. 2929func (c *FeedsGetCall) IfNoneMatch(entityTag string) *FeedsGetCall { 2930 c.ifNoneMatch_ = entityTag 2931 return c 2932} 2933 2934// Context sets the context to be used in this call's Do method. Any 2935// pending HTTP request will be aborted if the provided context is 2936// canceled. 2937func (c *FeedsGetCall) Context(ctx context.Context) *FeedsGetCall { 2938 c.ctx_ = ctx 2939 return c 2940} 2941 2942// Header returns an http.Header that can be modified by the caller to 2943// add HTTP headers to the request. 2944func (c *FeedsGetCall) Header() http.Header { 2945 if c.header_ == nil { 2946 c.header_ = make(http.Header) 2947 } 2948 return c.header_ 2949} 2950 2951func (c *FeedsGetCall) doRequest(alt string) (*http.Response, error) { 2952 reqHeaders := make(http.Header) 2953 reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503") 2954 for k, v := range c.header_ { 2955 reqHeaders[k] = v 2956 } 2957 reqHeaders.Set("User-Agent", c.s.userAgent()) 2958 if c.ifNoneMatch_ != "" { 2959 reqHeaders.Set("If-None-Match", c.ifNoneMatch_) 2960 } 2961 var body io.Reader = nil 2962 c.urlParams_.Set("alt", alt) 2963 c.urlParams_.Set("prettyPrint", "false") 2964 urls := googleapi.ResolveRelative(c.s.BasePath, "v1/{+name}") 2965 urls += "?" + c.urlParams_.Encode() 2966 req, err := http.NewRequest("GET", urls, body) 2967 if err != nil { 2968 return nil, err 2969 } 2970 req.Header = reqHeaders 2971 googleapi.Expand(req.URL, map[string]string{ 2972 "name": c.name, 2973 }) 2974 return gensupport.SendRequest(c.ctx_, c.s.client, req) 2975} 2976 2977// Do executes the "cloudasset.feeds.get" call. 2978// Exactly one of *Feed or error will be non-nil. Any non-2xx status 2979// code is an error. Response headers are in either 2980// *Feed.ServerResponse.Header or (if a response was returned at all) in 2981// error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check 2982// whether the returned error was because http.StatusNotModified was 2983// returned. 2984func (c *FeedsGetCall) Do(opts ...googleapi.CallOption) (*Feed, error) { 2985 gensupport.SetOptions(c.urlParams_, opts...) 2986 res, err := c.doRequest("json") 2987 if res != nil && res.StatusCode == http.StatusNotModified { 2988 if res.Body != nil { 2989 res.Body.Close() 2990 } 2991 return nil, &googleapi.Error{ 2992 Code: res.StatusCode, 2993 Header: res.Header, 2994 } 2995 } 2996 if err != nil { 2997 return nil, err 2998 } 2999 defer googleapi.CloseBody(res) 3000 if err := googleapi.CheckResponse(res); err != nil { 3001 return nil, err 3002 } 3003 ret := &Feed{ 3004 ServerResponse: googleapi.ServerResponse{ 3005 Header: res.Header, 3006 HTTPStatusCode: res.StatusCode, 3007 }, 3008 } 3009 target := &ret 3010 if err := gensupport.DecodeResponse(target, res); err != nil { 3011 return nil, err 3012 } 3013 return ret, nil 3014 // { 3015 // "description": "Gets details about an asset feed.", 3016 // "flatPath": "v1/{v1Id}/{v1Id1}/feeds/{feedsId}", 3017 // "httpMethod": "GET", 3018 // "id": "cloudasset.feeds.get", 3019 // "parameterOrder": [ 3020 // "name" 3021 // ], 3022 // "parameters": { 3023 // "name": { 3024 // "description": "Required. The name of the Feed and it must be in the format of:\nprojects/project_number/feeds/feed_id\nfolders/folder_number/feeds/feed_id\norganizations/organization_number/feeds/feed_id", 3025 // "location": "path", 3026 // "pattern": "^[^/]+/[^/]+/feeds/[^/]+$", 3027 // "required": true, 3028 // "type": "string" 3029 // } 3030 // }, 3031 // "path": "v1/{+name}", 3032 // "response": { 3033 // "$ref": "Feed" 3034 // }, 3035 // "scopes": [ 3036 // "https://www.googleapis.com/auth/cloud-platform" 3037 // ] 3038 // } 3039 3040} 3041 3042// method id "cloudasset.feeds.list": 3043 3044type FeedsListCall struct { 3045 s *Service 3046 parent string 3047 urlParams_ gensupport.URLParams 3048 ifNoneMatch_ string 3049 ctx_ context.Context 3050 header_ http.Header 3051} 3052 3053// List: Lists all asset feeds in a parent project/folder/organization. 3054func (r *FeedsService) List(parent string) *FeedsListCall { 3055 c := &FeedsListCall{s: r.s, urlParams_: make(gensupport.URLParams)} 3056 c.parent = parent 3057 return c 3058} 3059 3060// Fields allows partial responses to be retrieved. See 3061// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse 3062// for more information. 3063func (c *FeedsListCall) Fields(s ...googleapi.Field) *FeedsListCall { 3064 c.urlParams_.Set("fields", googleapi.CombineFields(s)) 3065 return c 3066} 3067 3068// IfNoneMatch sets the optional parameter which makes the operation 3069// fail if the object's ETag matches the given value. This is useful for 3070// getting updates only after the object has changed since the last 3071// request. Use googleapi.IsNotModified to check whether the response 3072// error from Do is the result of In-None-Match. 3073func (c *FeedsListCall) IfNoneMatch(entityTag string) *FeedsListCall { 3074 c.ifNoneMatch_ = entityTag 3075 return c 3076} 3077 3078// Context sets the context to be used in this call's Do method. Any 3079// pending HTTP request will be aborted if the provided context is 3080// canceled. 3081func (c *FeedsListCall) Context(ctx context.Context) *FeedsListCall { 3082 c.ctx_ = ctx 3083 return c 3084} 3085 3086// Header returns an http.Header that can be modified by the caller to 3087// add HTTP headers to the request. 3088func (c *FeedsListCall) Header() http.Header { 3089 if c.header_ == nil { 3090 c.header_ = make(http.Header) 3091 } 3092 return c.header_ 3093} 3094 3095func (c *FeedsListCall) doRequest(alt string) (*http.Response, error) { 3096 reqHeaders := make(http.Header) 3097 reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503") 3098 for k, v := range c.header_ { 3099 reqHeaders[k] = v 3100 } 3101 reqHeaders.Set("User-Agent", c.s.userAgent()) 3102 if c.ifNoneMatch_ != "" { 3103 reqHeaders.Set("If-None-Match", c.ifNoneMatch_) 3104 } 3105 var body io.Reader = nil 3106 c.urlParams_.Set("alt", alt) 3107 c.urlParams_.Set("prettyPrint", "false") 3108 urls := googleapi.ResolveRelative(c.s.BasePath, "v1/{+parent}/feeds") 3109 urls += "?" + c.urlParams_.Encode() 3110 req, err := http.NewRequest("GET", urls, body) 3111 if err != nil { 3112 return nil, err 3113 } 3114 req.Header = reqHeaders 3115 googleapi.Expand(req.URL, map[string]string{ 3116 "parent": c.parent, 3117 }) 3118 return gensupport.SendRequest(c.ctx_, c.s.client, req) 3119} 3120 3121// Do executes the "cloudasset.feeds.list" call. 3122// Exactly one of *ListFeedsResponse or error will be non-nil. Any 3123// non-2xx status code is an error. Response headers are in either 3124// *ListFeedsResponse.ServerResponse.Header or (if a response was 3125// returned at all) in error.(*googleapi.Error).Header. Use 3126// googleapi.IsNotModified to check whether the returned error was 3127// because http.StatusNotModified was returned. 3128func (c *FeedsListCall) Do(opts ...googleapi.CallOption) (*ListFeedsResponse, error) { 3129 gensupport.SetOptions(c.urlParams_, opts...) 3130 res, err := c.doRequest("json") 3131 if res != nil && res.StatusCode == http.StatusNotModified { 3132 if res.Body != nil { 3133 res.Body.Close() 3134 } 3135 return nil, &googleapi.Error{ 3136 Code: res.StatusCode, 3137 Header: res.Header, 3138 } 3139 } 3140 if err != nil { 3141 return nil, err 3142 } 3143 defer googleapi.CloseBody(res) 3144 if err := googleapi.CheckResponse(res); err != nil { 3145 return nil, err 3146 } 3147 ret := &ListFeedsResponse{ 3148 ServerResponse: googleapi.ServerResponse{ 3149 Header: res.Header, 3150 HTTPStatusCode: res.StatusCode, 3151 }, 3152 } 3153 target := &ret 3154 if err := gensupport.DecodeResponse(target, res); err != nil { 3155 return nil, err 3156 } 3157 return ret, nil 3158 // { 3159 // "description": "Lists all asset feeds in a parent project/folder/organization.", 3160 // "flatPath": "v1/{v1Id}/{v1Id1}/feeds", 3161 // "httpMethod": "GET", 3162 // "id": "cloudasset.feeds.list", 3163 // "parameterOrder": [ 3164 // "parent" 3165 // ], 3166 // "parameters": { 3167 // "parent": { 3168 // "description": "Required. The parent project/folder/organization whose feeds are to be\nlisted. It can only be using project/folder/organization number (such as\n\"folders/12345\")\", or a project ID (such as \"projects/my-project-id\").", 3169 // "location": "path", 3170 // "pattern": "^[^/]+/[^/]+$", 3171 // "required": true, 3172 // "type": "string" 3173 // } 3174 // }, 3175 // "path": "v1/{+parent}/feeds", 3176 // "response": { 3177 // "$ref": "ListFeedsResponse" 3178 // }, 3179 // "scopes": [ 3180 // "https://www.googleapis.com/auth/cloud-platform" 3181 // ] 3182 // } 3183 3184} 3185 3186// method id "cloudasset.feeds.patch": 3187 3188type FeedsPatchCall struct { 3189 s *Service 3190 nameid string 3191 updatefeedrequest *UpdateFeedRequest 3192 urlParams_ gensupport.URLParams 3193 ctx_ context.Context 3194 header_ http.Header 3195} 3196 3197// Patch: Updates an asset feed configuration. 3198func (r *FeedsService) Patch(nameid string, updatefeedrequest *UpdateFeedRequest) *FeedsPatchCall { 3199 c := &FeedsPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)} 3200 c.nameid = nameid 3201 c.updatefeedrequest = updatefeedrequest 3202 return c 3203} 3204 3205// Fields allows partial responses to be retrieved. See 3206// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse 3207// for more information. 3208func (c *FeedsPatchCall) Fields(s ...googleapi.Field) *FeedsPatchCall { 3209 c.urlParams_.Set("fields", googleapi.CombineFields(s)) 3210 return c 3211} 3212 3213// Context sets the context to be used in this call's Do method. Any 3214// pending HTTP request will be aborted if the provided context is 3215// canceled. 3216func (c *FeedsPatchCall) Context(ctx context.Context) *FeedsPatchCall { 3217 c.ctx_ = ctx 3218 return c 3219} 3220 3221// Header returns an http.Header that can be modified by the caller to 3222// add HTTP headers to the request. 3223func (c *FeedsPatchCall) Header() http.Header { 3224 if c.header_ == nil { 3225 c.header_ = make(http.Header) 3226 } 3227 return c.header_ 3228} 3229 3230func (c *FeedsPatchCall) doRequest(alt string) (*http.Response, error) { 3231 reqHeaders := make(http.Header) 3232 reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503") 3233 for k, v := range c.header_ { 3234 reqHeaders[k] = v 3235 } 3236 reqHeaders.Set("User-Agent", c.s.userAgent()) 3237 var body io.Reader = nil 3238 body, err := googleapi.WithoutDataWrapper.JSONReader(c.updatefeedrequest) 3239 if err != nil { 3240 return nil, err 3241 } 3242 reqHeaders.Set("Content-Type", "application/json") 3243 c.urlParams_.Set("alt", alt) 3244 c.urlParams_.Set("prettyPrint", "false") 3245 urls := googleapi.ResolveRelative(c.s.BasePath, "v1/{+name}") 3246 urls += "?" + c.urlParams_.Encode() 3247 req, err := http.NewRequest("PATCH", urls, body) 3248 if err != nil { 3249 return nil, err 3250 } 3251 req.Header = reqHeaders 3252 googleapi.Expand(req.URL, map[string]string{ 3253 "name": c.nameid, 3254 }) 3255 return gensupport.SendRequest(c.ctx_, c.s.client, req) 3256} 3257 3258// Do executes the "cloudasset.feeds.patch" call. 3259// Exactly one of *Feed or error will be non-nil. Any non-2xx status 3260// code is an error. Response headers are in either 3261// *Feed.ServerResponse.Header or (if a response was returned at all) in 3262// error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check 3263// whether the returned error was because http.StatusNotModified was 3264// returned. 3265func (c *FeedsPatchCall) Do(opts ...googleapi.CallOption) (*Feed, error) { 3266 gensupport.SetOptions(c.urlParams_, opts...) 3267 res, err := c.doRequest("json") 3268 if res != nil && res.StatusCode == http.StatusNotModified { 3269 if res.Body != nil { 3270 res.Body.Close() 3271 } 3272 return nil, &googleapi.Error{ 3273 Code: res.StatusCode, 3274 Header: res.Header, 3275 } 3276 } 3277 if err != nil { 3278 return nil, err 3279 } 3280 defer googleapi.CloseBody(res) 3281 if err := googleapi.CheckResponse(res); err != nil { 3282 return nil, err 3283 } 3284 ret := &Feed{ 3285 ServerResponse: googleapi.ServerResponse{ 3286 Header: res.Header, 3287 HTTPStatusCode: res.StatusCode, 3288 }, 3289 } 3290 target := &ret 3291 if err := gensupport.DecodeResponse(target, res); err != nil { 3292 return nil, err 3293 } 3294 return ret, nil 3295 // { 3296 // "description": "Updates an asset feed configuration.", 3297 // "flatPath": "v1/{v1Id}/{v1Id1}/feeds/{feedsId}", 3298 // "httpMethod": "PATCH", 3299 // "id": "cloudasset.feeds.patch", 3300 // "parameterOrder": [ 3301 // "name" 3302 // ], 3303 // "parameters": { 3304 // "name": { 3305 // "description": "Required. The format will be\nprojects/{project_number}/feeds/{client-assigned_feed_identifier} or\nfolders/{folder_number}/feeds/{client-assigned_feed_identifier} or\norganizations/{organization_number}/feeds/{client-assigned_feed_identifier}\n\nThe client-assigned feed identifier must be unique within the parent\nproject/folder/organization.", 3306 // "location": "path", 3307 // "pattern": "^[^/]+/[^/]+/feeds/[^/]+$", 3308 // "required": true, 3309 // "type": "string" 3310 // } 3311 // }, 3312 // "path": "v1/{+name}", 3313 // "request": { 3314 // "$ref": "UpdateFeedRequest" 3315 // }, 3316 // "response": { 3317 // "$ref": "Feed" 3318 // }, 3319 // "scopes": [ 3320 // "https://www.googleapis.com/auth/cloud-platform" 3321 // ] 3322 // } 3323 3324} 3325 3326// method id "cloudasset.operations.get": 3327 3328type OperationsGetCall struct { 3329 s *Service 3330 name string 3331 urlParams_ gensupport.URLParams 3332 ifNoneMatch_ string 3333 ctx_ context.Context 3334 header_ http.Header 3335} 3336 3337// Get: Gets the latest state of a long-running operation. Clients can 3338// use this 3339// method to poll the operation result at intervals as recommended by 3340// the API 3341// service. 3342func (r *OperationsService) Get(name string) *OperationsGetCall { 3343 c := &OperationsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)} 3344 c.name = name 3345 return c 3346} 3347 3348// Fields allows partial responses to be retrieved. See 3349// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse 3350// for more information. 3351func (c *OperationsGetCall) Fields(s ...googleapi.Field) *OperationsGetCall { 3352 c.urlParams_.Set("fields", googleapi.CombineFields(s)) 3353 return c 3354} 3355 3356// IfNoneMatch sets the optional parameter which makes the operation 3357// fail if the object's ETag matches the given value. This is useful for 3358// getting updates only after the object has changed since the last 3359// request. Use googleapi.IsNotModified to check whether the response 3360// error from Do is the result of In-None-Match. 3361func (c *OperationsGetCall) IfNoneMatch(entityTag string) *OperationsGetCall { 3362 c.ifNoneMatch_ = entityTag 3363 return c 3364} 3365 3366// Context sets the context to be used in this call's Do method. Any 3367// pending HTTP request will be aborted if the provided context is 3368// canceled. 3369func (c *OperationsGetCall) Context(ctx context.Context) *OperationsGetCall { 3370 c.ctx_ = ctx 3371 return c 3372} 3373 3374// Header returns an http.Header that can be modified by the caller to 3375// add HTTP headers to the request. 3376func (c *OperationsGetCall) Header() http.Header { 3377 if c.header_ == nil { 3378 c.header_ = make(http.Header) 3379 } 3380 return c.header_ 3381} 3382 3383func (c *OperationsGetCall) doRequest(alt string) (*http.Response, error) { 3384 reqHeaders := make(http.Header) 3385 reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503") 3386 for k, v := range c.header_ { 3387 reqHeaders[k] = v 3388 } 3389 reqHeaders.Set("User-Agent", c.s.userAgent()) 3390 if c.ifNoneMatch_ != "" { 3391 reqHeaders.Set("If-None-Match", c.ifNoneMatch_) 3392 } 3393 var body io.Reader = nil 3394 c.urlParams_.Set("alt", alt) 3395 c.urlParams_.Set("prettyPrint", "false") 3396 urls := googleapi.ResolveRelative(c.s.BasePath, "v1/{+name}") 3397 urls += "?" + c.urlParams_.Encode() 3398 req, err := http.NewRequest("GET", urls, body) 3399 if err != nil { 3400 return nil, err 3401 } 3402 req.Header = reqHeaders 3403 googleapi.Expand(req.URL, map[string]string{ 3404 "name": c.name, 3405 }) 3406 return gensupport.SendRequest(c.ctx_, c.s.client, req) 3407} 3408 3409// Do executes the "cloudasset.operations.get" call. 3410// Exactly one of *Operation or error will be non-nil. Any non-2xx 3411// status code is an error. Response headers are in either 3412// *Operation.ServerResponse.Header or (if a response was returned at 3413// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified 3414// to check whether the returned error was because 3415// http.StatusNotModified was returned. 3416func (c *OperationsGetCall) Do(opts ...googleapi.CallOption) (*Operation, error) { 3417 gensupport.SetOptions(c.urlParams_, opts...) 3418 res, err := c.doRequest("json") 3419 if res != nil && res.StatusCode == http.StatusNotModified { 3420 if res.Body != nil { 3421 res.Body.Close() 3422 } 3423 return nil, &googleapi.Error{ 3424 Code: res.StatusCode, 3425 Header: res.Header, 3426 } 3427 } 3428 if err != nil { 3429 return nil, err 3430 } 3431 defer googleapi.CloseBody(res) 3432 if err := googleapi.CheckResponse(res); err != nil { 3433 return nil, err 3434 } 3435 ret := &Operation{ 3436 ServerResponse: googleapi.ServerResponse{ 3437 Header: res.Header, 3438 HTTPStatusCode: res.StatusCode, 3439 }, 3440 } 3441 target := &ret 3442 if err := gensupport.DecodeResponse(target, res); err != nil { 3443 return nil, err 3444 } 3445 return ret, nil 3446 // { 3447 // "description": "Gets the latest state of a long-running operation. Clients can use this\nmethod to poll the operation result at intervals as recommended by the API\nservice.", 3448 // "flatPath": "v1/{v1Id}/{v1Id1}/operations/{operationsId}/{operationsId1}", 3449 // "httpMethod": "GET", 3450 // "id": "cloudasset.operations.get", 3451 // "parameterOrder": [ 3452 // "name" 3453 // ], 3454 // "parameters": { 3455 // "name": { 3456 // "description": "The name of the operation resource.", 3457 // "location": "path", 3458 // "pattern": "^[^/]+/[^/]+/operations/[^/]+/.*$", 3459 // "required": true, 3460 // "type": "string" 3461 // } 3462 // }, 3463 // "path": "v1/{+name}", 3464 // "response": { 3465 // "$ref": "Operation" 3466 // }, 3467 // "scopes": [ 3468 // "https://www.googleapis.com/auth/cloud-platform" 3469 // ] 3470 // } 3471 3472} 3473 3474// method id "cloudasset.batchGetAssetsHistory": 3475 3476type V1BatchGetAssetsHistoryCall struct { 3477 s *Service 3478 parent string 3479 urlParams_ gensupport.URLParams 3480 ifNoneMatch_ string 3481 ctx_ context.Context 3482 header_ http.Header 3483} 3484 3485// BatchGetAssetsHistory: Batch gets the update history of assets that 3486// overlap a time window. 3487// For RESOURCE content, this API outputs history with asset in 3488// both 3489// non-delete or deleted status. 3490// For IAM_POLICY content, this API outputs history when the asset and 3491// its 3492// attached IAM POLICY both exist. This can create gaps in the output 3493// history. 3494// If a specified asset does not exist, this API returns an 3495// INVALID_ARGUMENT 3496// error. 3497func (r *V1Service) BatchGetAssetsHistory(parent string) *V1BatchGetAssetsHistoryCall { 3498 c := &V1BatchGetAssetsHistoryCall{s: r.s, urlParams_: make(gensupport.URLParams)} 3499 c.parent = parent 3500 return c 3501} 3502 3503// AssetNames sets the optional parameter "assetNames": A list of the 3504// full names of the assets. For 3505// example: 3506// `//compute.googleapis.com/projects/my_project_123/zones/zone1 3507// /instances/instance1`. 3508// See 3509// [Resource 3510// Names](https://cloud.google.com/apis/design/resource_names#f 3511// ull_resource_name) 3512// and [Resource 3513// Name 3514// Format](https://cloud.google.com/asset-inventory/docs/resource-na 3515// me-format) 3516// for more info. 3517// 3518// The request becomes a no-op if the asset name list is empty, and the 3519// max 3520// size of the asset name list is 100 in one request. 3521func (c *V1BatchGetAssetsHistoryCall) AssetNames(assetNames ...string) *V1BatchGetAssetsHistoryCall { 3522 c.urlParams_.SetMulti("assetNames", append([]string{}, assetNames...)) 3523 return c 3524} 3525 3526// ContentType sets the optional parameter "contentType": The content 3527// type. 3528// 3529// Possible values: 3530// "CONTENT_TYPE_UNSPECIFIED" 3531// "RESOURCE" 3532// "IAM_POLICY" 3533// "ORG_POLICY" 3534// "ACCESS_POLICY" 3535func (c *V1BatchGetAssetsHistoryCall) ContentType(contentType string) *V1BatchGetAssetsHistoryCall { 3536 c.urlParams_.Set("contentType", contentType) 3537 return c 3538} 3539 3540// ReadTimeWindowEndTime sets the optional parameter 3541// "readTimeWindow.endTime": End time of the time window (inclusive). If 3542// not specified, the current 3543// timestamp is used instead. 3544func (c *V1BatchGetAssetsHistoryCall) ReadTimeWindowEndTime(readTimeWindowEndTime string) *V1BatchGetAssetsHistoryCall { 3545 c.urlParams_.Set("readTimeWindow.endTime", readTimeWindowEndTime) 3546 return c 3547} 3548 3549// ReadTimeWindowStartTime sets the optional parameter 3550// "readTimeWindow.startTime": Start time of the time window 3551// (exclusive). 3552func (c *V1BatchGetAssetsHistoryCall) ReadTimeWindowStartTime(readTimeWindowStartTime string) *V1BatchGetAssetsHistoryCall { 3553 c.urlParams_.Set("readTimeWindow.startTime", readTimeWindowStartTime) 3554 return c 3555} 3556 3557// Fields allows partial responses to be retrieved. See 3558// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse 3559// for more information. 3560func (c *V1BatchGetAssetsHistoryCall) Fields(s ...googleapi.Field) *V1BatchGetAssetsHistoryCall { 3561 c.urlParams_.Set("fields", googleapi.CombineFields(s)) 3562 return c 3563} 3564 3565// IfNoneMatch sets the optional parameter which makes the operation 3566// fail if the object's ETag matches the given value. This is useful for 3567// getting updates only after the object has changed since the last 3568// request. Use googleapi.IsNotModified to check whether the response 3569// error from Do is the result of In-None-Match. 3570func (c *V1BatchGetAssetsHistoryCall) IfNoneMatch(entityTag string) *V1BatchGetAssetsHistoryCall { 3571 c.ifNoneMatch_ = entityTag 3572 return c 3573} 3574 3575// Context sets the context to be used in this call's Do method. Any 3576// pending HTTP request will be aborted if the provided context is 3577// canceled. 3578func (c *V1BatchGetAssetsHistoryCall) Context(ctx context.Context) *V1BatchGetAssetsHistoryCall { 3579 c.ctx_ = ctx 3580 return c 3581} 3582 3583// Header returns an http.Header that can be modified by the caller to 3584// add HTTP headers to the request. 3585func (c *V1BatchGetAssetsHistoryCall) Header() http.Header { 3586 if c.header_ == nil { 3587 c.header_ = make(http.Header) 3588 } 3589 return c.header_ 3590} 3591 3592func (c *V1BatchGetAssetsHistoryCall) doRequest(alt string) (*http.Response, error) { 3593 reqHeaders := make(http.Header) 3594 reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503") 3595 for k, v := range c.header_ { 3596 reqHeaders[k] = v 3597 } 3598 reqHeaders.Set("User-Agent", c.s.userAgent()) 3599 if c.ifNoneMatch_ != "" { 3600 reqHeaders.Set("If-None-Match", c.ifNoneMatch_) 3601 } 3602 var body io.Reader = nil 3603 c.urlParams_.Set("alt", alt) 3604 c.urlParams_.Set("prettyPrint", "false") 3605 urls := googleapi.ResolveRelative(c.s.BasePath, "v1/{+parent}:batchGetAssetsHistory") 3606 urls += "?" + c.urlParams_.Encode() 3607 req, err := http.NewRequest("GET", urls, body) 3608 if err != nil { 3609 return nil, err 3610 } 3611 req.Header = reqHeaders 3612 googleapi.Expand(req.URL, map[string]string{ 3613 "parent": c.parent, 3614 }) 3615 return gensupport.SendRequest(c.ctx_, c.s.client, req) 3616} 3617 3618// Do executes the "cloudasset.batchGetAssetsHistory" call. 3619// Exactly one of *BatchGetAssetsHistoryResponse or error will be 3620// non-nil. Any non-2xx status code is an error. Response headers are in 3621// either *BatchGetAssetsHistoryResponse.ServerResponse.Header or (if a 3622// response was returned at all) in error.(*googleapi.Error).Header. Use 3623// googleapi.IsNotModified to check whether the returned error was 3624// because http.StatusNotModified was returned. 3625func (c *V1BatchGetAssetsHistoryCall) Do(opts ...googleapi.CallOption) (*BatchGetAssetsHistoryResponse, error) { 3626 gensupport.SetOptions(c.urlParams_, opts...) 3627 res, err := c.doRequest("json") 3628 if res != nil && res.StatusCode == http.StatusNotModified { 3629 if res.Body != nil { 3630 res.Body.Close() 3631 } 3632 return nil, &googleapi.Error{ 3633 Code: res.StatusCode, 3634 Header: res.Header, 3635 } 3636 } 3637 if err != nil { 3638 return nil, err 3639 } 3640 defer googleapi.CloseBody(res) 3641 if err := googleapi.CheckResponse(res); err != nil { 3642 return nil, err 3643 } 3644 ret := &BatchGetAssetsHistoryResponse{ 3645 ServerResponse: googleapi.ServerResponse{ 3646 Header: res.Header, 3647 HTTPStatusCode: res.StatusCode, 3648 }, 3649 } 3650 target := &ret 3651 if err := gensupport.DecodeResponse(target, res); err != nil { 3652 return nil, err 3653 } 3654 return ret, nil 3655 // { 3656 // "description": "Batch gets the update history of assets that overlap a time window.\nFor RESOURCE content, this API outputs history with asset in both\nnon-delete or deleted status.\nFor IAM_POLICY content, this API outputs history when the asset and its\nattached IAM POLICY both exist. This can create gaps in the output history.\nIf a specified asset does not exist, this API returns an INVALID_ARGUMENT\nerror.", 3657 // "flatPath": "v1/{v1Id}/{v1Id1}:batchGetAssetsHistory", 3658 // "httpMethod": "GET", 3659 // "id": "cloudasset.batchGetAssetsHistory", 3660 // "parameterOrder": [ 3661 // "parent" 3662 // ], 3663 // "parameters": { 3664 // "assetNames": { 3665 // "description": "A list of the full names of the assets. For example:\n`//compute.googleapis.com/projects/my_project_123/zones/zone1/instances/instance1`.\nSee [Resource\nNames](https://cloud.google.com/apis/design/resource_names#full_resource_name)\nand [Resource Name\nFormat](https://cloud.google.com/asset-inventory/docs/resource-name-format)\nfor more info.\n\nThe request becomes a no-op if the asset name list is empty, and the max\nsize of the asset name list is 100 in one request.", 3666 // "location": "query", 3667 // "repeated": true, 3668 // "type": "string" 3669 // }, 3670 // "contentType": { 3671 // "description": "Optional. The content type.", 3672 // "enum": [ 3673 // "CONTENT_TYPE_UNSPECIFIED", 3674 // "RESOURCE", 3675 // "IAM_POLICY", 3676 // "ORG_POLICY", 3677 // "ACCESS_POLICY" 3678 // ], 3679 // "location": "query", 3680 // "type": "string" 3681 // }, 3682 // "parent": { 3683 // "description": "Required. The relative name of the root asset. It can only be an\norganization number (such as \"organizations/123\"), a project ID (such as\n\"projects/my-project-id\")\", or a project number (such as \"projects/12345\").", 3684 // "location": "path", 3685 // "pattern": "^[^/]+/[^/]+$", 3686 // "required": true, 3687 // "type": "string" 3688 // }, 3689 // "readTimeWindow.endTime": { 3690 // "description": "End time of the time window (inclusive). If not specified, the current\ntimestamp is used instead.", 3691 // "format": "google-datetime", 3692 // "location": "query", 3693 // "type": "string" 3694 // }, 3695 // "readTimeWindow.startTime": { 3696 // "description": "Start time of the time window (exclusive).", 3697 // "format": "google-datetime", 3698 // "location": "query", 3699 // "type": "string" 3700 // } 3701 // }, 3702 // "path": "v1/{+parent}:batchGetAssetsHistory", 3703 // "response": { 3704 // "$ref": "BatchGetAssetsHistoryResponse" 3705 // }, 3706 // "scopes": [ 3707 // "https://www.googleapis.com/auth/cloud-platform" 3708 // ] 3709 // } 3710 3711} 3712 3713// method id "cloudasset.exportAssets": 3714 3715type V1ExportAssetsCall struct { 3716 s *Service 3717 parent string 3718 exportassetsrequest *ExportAssetsRequest 3719 urlParams_ gensupport.URLParams 3720 ctx_ context.Context 3721 header_ http.Header 3722} 3723 3724// ExportAssets: Exports assets with time and resource types to a given 3725// Cloud Storage 3726// location. The output format is newline-delimited JSON. 3727// This API implements the google.longrunning.Operation API allowing 3728// you 3729// to keep track of the export. 3730func (r *V1Service) ExportAssets(parent string, exportassetsrequest *ExportAssetsRequest) *V1ExportAssetsCall { 3731 c := &V1ExportAssetsCall{s: r.s, urlParams_: make(gensupport.URLParams)} 3732 c.parent = parent 3733 c.exportassetsrequest = exportassetsrequest 3734 return c 3735} 3736 3737// Fields allows partial responses to be retrieved. See 3738// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse 3739// for more information. 3740func (c *V1ExportAssetsCall) Fields(s ...googleapi.Field) *V1ExportAssetsCall { 3741 c.urlParams_.Set("fields", googleapi.CombineFields(s)) 3742 return c 3743} 3744 3745// Context sets the context to be used in this call's Do method. Any 3746// pending HTTP request will be aborted if the provided context is 3747// canceled. 3748func (c *V1ExportAssetsCall) Context(ctx context.Context) *V1ExportAssetsCall { 3749 c.ctx_ = ctx 3750 return c 3751} 3752 3753// Header returns an http.Header that can be modified by the caller to 3754// add HTTP headers to the request. 3755func (c *V1ExportAssetsCall) Header() http.Header { 3756 if c.header_ == nil { 3757 c.header_ = make(http.Header) 3758 } 3759 return c.header_ 3760} 3761 3762func (c *V1ExportAssetsCall) doRequest(alt string) (*http.Response, error) { 3763 reqHeaders := make(http.Header) 3764 reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503") 3765 for k, v := range c.header_ { 3766 reqHeaders[k] = v 3767 } 3768 reqHeaders.Set("User-Agent", c.s.userAgent()) 3769 var body io.Reader = nil 3770 body, err := googleapi.WithoutDataWrapper.JSONReader(c.exportassetsrequest) 3771 if err != nil { 3772 return nil, err 3773 } 3774 reqHeaders.Set("Content-Type", "application/json") 3775 c.urlParams_.Set("alt", alt) 3776 c.urlParams_.Set("prettyPrint", "false") 3777 urls := googleapi.ResolveRelative(c.s.BasePath, "v1/{+parent}:exportAssets") 3778 urls += "?" + c.urlParams_.Encode() 3779 req, err := http.NewRequest("POST", urls, body) 3780 if err != nil { 3781 return nil, err 3782 } 3783 req.Header = reqHeaders 3784 googleapi.Expand(req.URL, map[string]string{ 3785 "parent": c.parent, 3786 }) 3787 return gensupport.SendRequest(c.ctx_, c.s.client, req) 3788} 3789 3790// Do executes the "cloudasset.exportAssets" call. 3791// Exactly one of *Operation or error will be non-nil. Any non-2xx 3792// status code is an error. Response headers are in either 3793// *Operation.ServerResponse.Header or (if a response was returned at 3794// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified 3795// to check whether the returned error was because 3796// http.StatusNotModified was returned. 3797func (c *V1ExportAssetsCall) Do(opts ...googleapi.CallOption) (*Operation, error) { 3798 gensupport.SetOptions(c.urlParams_, opts...) 3799 res, err := c.doRequest("json") 3800 if res != nil && res.StatusCode == http.StatusNotModified { 3801 if res.Body != nil { 3802 res.Body.Close() 3803 } 3804 return nil, &googleapi.Error{ 3805 Code: res.StatusCode, 3806 Header: res.Header, 3807 } 3808 } 3809 if err != nil { 3810 return nil, err 3811 } 3812 defer googleapi.CloseBody(res) 3813 if err := googleapi.CheckResponse(res); err != nil { 3814 return nil, err 3815 } 3816 ret := &Operation{ 3817 ServerResponse: googleapi.ServerResponse{ 3818 Header: res.Header, 3819 HTTPStatusCode: res.StatusCode, 3820 }, 3821 } 3822 target := &ret 3823 if err := gensupport.DecodeResponse(target, res); err != nil { 3824 return nil, err 3825 } 3826 return ret, nil 3827 // { 3828 // "description": "Exports assets with time and resource types to a given Cloud Storage\nlocation. The output format is newline-delimited JSON.\nThis API implements the google.longrunning.Operation API allowing you\nto keep track of the export.", 3829 // "flatPath": "v1/{v1Id}/{v1Id1}:exportAssets", 3830 // "httpMethod": "POST", 3831 // "id": "cloudasset.exportAssets", 3832 // "parameterOrder": [ 3833 // "parent" 3834 // ], 3835 // "parameters": { 3836 // "parent": { 3837 // "description": "Required. The relative name of the root asset. This can only be an\norganization number (such as \"organizations/123\"), a project ID (such as\n\"projects/my-project-id\"), or a project number (such as \"projects/12345\"),\nor a folder number (such as \"folders/123\").", 3838 // "location": "path", 3839 // "pattern": "^[^/]+/[^/]+$", 3840 // "required": true, 3841 // "type": "string" 3842 // } 3843 // }, 3844 // "path": "v1/{+parent}:exportAssets", 3845 // "request": { 3846 // "$ref": "ExportAssetsRequest" 3847 // }, 3848 // "response": { 3849 // "$ref": "Operation" 3850 // }, 3851 // "scopes": [ 3852 // "https://www.googleapis.com/auth/cloud-platform" 3853 // ] 3854 // } 3855 3856} 3857