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