diff --git a/resources/packs/gcp/gcp.lr b/resources/packs/gcp/gcp.lr index 697a293b69..4a2548b5ce 100644 --- a/resources/packs/gcp/gcp.lr +++ b/resources/packs/gcp/gcp.lr @@ -2,7 +2,8 @@ option go_package = "go.mondoo.com/cnquery/resources/packs/gcp" alias gcloud.organization = gcp.organization alias gcloud.project = gcp.project -alias gcloud.resourcemanager.binding = gcp.resourcemanager.binding +alias gcloud.resourcemanager.binding = gcp.iamPolicy.binding +alias gcp.resourcemanager.binding = gcp.iamPolicy.binding alias gcp.compute = gcp.project.computeService alias gcloud.compute = gcp.project.computeService alias gcloud.compute.instance = gcp.project.computeService.instance @@ -25,7 +26,7 @@ gcp.organization @defaults("id") { // Organization state lifecycleState string // Organization IAM policy - iamPolicy() []gcp.resourcemanager.binding + iamPolicy() gcp.iamPolicy // Access approval settings accessApprovalSettings() gcp.accessApprovalSettings } @@ -47,7 +48,7 @@ gcp.project @defaults("name") { // The labels associated with this project labels() map[string]string // IAM policy - iamPolicy() []gcp.resourcemanager.binding + iamPolicy() gcp.iamPolicy // List of available and enabled services for project services() []gcp.service // List of recommendations @@ -134,8 +135,20 @@ gcp.recommendation { state dict } +// GCP IAM policy +private gcp.iamPolicy @defaults("bindings") { + // Internal ID + id string + // Cloud audit logging configuration + auditConfigs []dict + // List of bindings associating lists of members, or principals, to roles + bindings []gcp.iamPolicy.binding + // Format of the policy + version int +} + // GCP Resource Manager Binding -private gcp.resourcemanager.binding { +private gcp.iamPolicy.binding { // Internal ID id string // Principals requesting access for a Google Cloud resource @@ -767,7 +780,7 @@ private gcp.project.storageService.bucket @defaults("id") { // Update timestamp updated time // IAM policy - iamPolicy() []gcp.resourcemanager.binding + iamPolicy() gcp.iamPolicy // IAM configuration iamConfiguration dict // Retention policy @@ -1648,7 +1661,7 @@ private gcp.project.kmsService.keyring.cryptokey @defaults("name purpose"){ // List of cryptokey versions versions() []gcp.project.kmsService.keyring.cryptokey.version // Crypto key IAM policy - iamPolicy() []gcp.resourcemanager.binding + iamPolicy() gcp.iamPolicy } // GCP KMS crypto key version diff --git a/resources/packs/gcp/gcp.lr.go b/resources/packs/gcp/gcp.lr.go index 5e8c4c7cc8..57d2e76d6e 100644 --- a/resources/packs/gcp/gcp.lr.go +++ b/resources/packs/gcp/gcp.lr.go @@ -16,7 +16,8 @@ func Init(registry *resources.Registry) { registry.AddFactory("gcp.project", newGcpProject) registry.AddFactory("gcp.service", newGcpService) registry.AddFactory("gcp.recommendation", newGcpRecommendation) - registry.AddFactory("gcp.resourcemanager.binding", newGcpResourcemanagerBinding) + registry.AddFactory("gcp.iamPolicy", newGcpIamPolicy) + registry.AddFactory("gcp.iamPolicy.binding", newGcpIamPolicyBinding) registry.AddFactory("gcp.project.computeService", newGcpProjectComputeService) registry.AddFactory("gcp.project.computeService.region", newGcpProjectComputeServiceRegion) registry.AddFactory("gcp.project.computeService.zone", newGcpProjectComputeServiceZone) @@ -138,7 +139,7 @@ type GcpOrganization interface { Id() (string, error) Name() (string, error) LifecycleState() (string, error) - IamPolicy() ([]interface{}, error) + IamPolicy() (GcpIamPolicy, error) AccessApprovalSettings() (GcpAccessApprovalSettings, error) } @@ -190,8 +191,8 @@ func newGcpOrganization(runtime *resources.Runtime, args *resources.Args) (inter return nil, errors.New("Failed to initialize \"gcp.organization\", its \"lifecycleState\" argument has the wrong type (expected type \"string\")") } case "iamPolicy": - if _, ok := val.([]interface{}); !ok { - return nil, errors.New("Failed to initialize \"gcp.organization\", its \"iamPolicy\" argument has the wrong type (expected type \"[]interface{}\")") + if _, ok := val.(GcpIamPolicy); !ok { + return nil, errors.New("Failed to initialize \"gcp.organization\", its \"iamPolicy\" argument has the wrong type (expected type \"GcpIamPolicy\")") } case "accessApprovalSettings": if _, ok := val.(GcpAccessApprovalSettings); !ok { @@ -324,7 +325,7 @@ func (s *mqlGcpOrganization) LifecycleState() (string, error) { } // IamPolicy accessor autogenerated -func (s *mqlGcpOrganization) IamPolicy() ([]interface{}, error) { +func (s *mqlGcpOrganization) IamPolicy() (GcpIamPolicy, error) { res, ok := s.Cache.Load("iamPolicy") if !ok || !res.Valid { if err := s.ComputeIamPolicy(); err != nil { @@ -339,9 +340,9 @@ func (s *mqlGcpOrganization) IamPolicy() ([]interface{}, error) { if res.Error != nil { return nil, res.Error } - tres, ok := res.Data.([]interface{}) + tres, ok := res.Data.(GcpIamPolicy) if !ok { - return nil, fmt.Errorf("\"gcp.organization\" failed to cast field \"iamPolicy\" to the right type ([]interface{}): %#v", res) + return nil, fmt.Errorf("\"gcp.organization\" failed to cast field \"iamPolicy\" to the right type (GcpIamPolicy): %#v", res) } return tres, nil } @@ -430,7 +431,7 @@ type GcpProject interface { LifecycleState() (string, error) CreateTime() (*time.Time, error) Labels() (map[string]interface{}, error) - IamPolicy() ([]interface{}, error) + IamPolicy() (GcpIamPolicy, error) Services() ([]interface{}, error) Recommendations() ([]interface{}, error) Gke() (GcpProjectGkeService, error) @@ -517,8 +518,8 @@ func newGcpProject(runtime *resources.Runtime, args *resources.Args) (interface{ return nil, errors.New("Failed to initialize \"gcp.project\", its \"labels\" argument has the wrong type (expected type \"map[string]interface{}\")") } case "iamPolicy": - if _, ok := val.([]interface{}); !ok { - return nil, errors.New("Failed to initialize \"gcp.project\", its \"iamPolicy\" argument has the wrong type (expected type \"[]interface{}\")") + if _, ok := val.(GcpIamPolicy); !ok { + return nil, errors.New("Failed to initialize \"gcp.project\", its \"iamPolicy\" argument has the wrong type (expected type \"GcpIamPolicy\")") } case "services": if _, ok := val.([]interface{}); !ok { @@ -924,7 +925,7 @@ func (s *mqlGcpProject) Labels() (map[string]interface{}, error) { } // IamPolicy accessor autogenerated -func (s *mqlGcpProject) IamPolicy() ([]interface{}, error) { +func (s *mqlGcpProject) IamPolicy() (GcpIamPolicy, error) { res, ok := s.Cache.Load("iamPolicy") if !ok || !res.Valid { if err := s.ComputeIamPolicy(); err != nil { @@ -939,9 +940,9 @@ func (s *mqlGcpProject) IamPolicy() ([]interface{}, error) { if res.Error != nil { return nil, res.Error } - tres, ok := res.Data.([]interface{}) + tres, ok := res.Data.(GcpIamPolicy) if !ok { - return nil, fmt.Errorf("\"gcp.project\" failed to cast field \"iamPolicy\" to the right type ([]interface{}): %#v", res) + return nil, fmt.Errorf("\"gcp.project\" failed to cast field \"iamPolicy\" to the right type (GcpIamPolicy): %#v", res) } return tres, nil } @@ -2616,8 +2617,221 @@ func (s *mqlGcpRecommendation) MqlCompute(name string) error { } } -// GcpResourcemanagerBinding resource interface -type GcpResourcemanagerBinding interface { +// GcpIamPolicy resource interface +type GcpIamPolicy interface { + MqlResource() (*resources.Resource) + MqlCompute(string) error + Field(string) (interface{}, error) + Register(string) error + Validate() error + Id() (string, error) + AuditConfigs() ([]interface{}, error) + Bindings() ([]interface{}, error) + Version() (int64, error) +} + +// mqlGcpIamPolicy for the gcp.iamPolicy resource +type mqlGcpIamPolicy struct { + *resources.Resource +} + +// MqlResource to retrieve the underlying resource info +func (s *mqlGcpIamPolicy) MqlResource() *resources.Resource { + return s.Resource +} + +// create a new instance of the gcp.iamPolicy resource +func newGcpIamPolicy(runtime *resources.Runtime, args *resources.Args) (interface{}, error) { + // User hooks + var err error + res := mqlGcpIamPolicy{runtime.NewResource("gcp.iamPolicy")} + // assign all named fields + var id string + + now := time.Now().Unix() + for name, val := range *args { + if val == nil { + res.Cache.Store(name, &resources.CacheEntry{Data: val, Valid: true, Timestamp: now}) + continue + } + + switch name { + case "id": + if _, ok := val.(string); !ok { + return nil, errors.New("Failed to initialize \"gcp.iamPolicy\", its \"id\" argument has the wrong type (expected type \"string\")") + } + case "auditConfigs": + if _, ok := val.([]interface{}); !ok { + return nil, errors.New("Failed to initialize \"gcp.iamPolicy\", its \"auditConfigs\" argument has the wrong type (expected type \"[]interface{}\")") + } + case "bindings": + if _, ok := val.([]interface{}); !ok { + return nil, errors.New("Failed to initialize \"gcp.iamPolicy\", its \"bindings\" argument has the wrong type (expected type \"[]interface{}\")") + } + case "version": + if _, ok := val.(int64); !ok { + return nil, errors.New("Failed to initialize \"gcp.iamPolicy\", its \"version\" argument has the wrong type (expected type \"int64\")") + } + case "__id": + idVal, ok := val.(string) + if !ok { + return nil, errors.New("Failed to initialize \"gcp.iamPolicy\", its \"__id\" argument has the wrong type (expected type \"string\")") + } + id = idVal + default: + return nil, errors.New("Initialized gcp.iamPolicy with unknown argument " + name) + } + res.Cache.Store(name, &resources.CacheEntry{Data: val, Valid: true, Timestamp: now}) + } + + // Get the ID + if id == "" { + res.Resource.Id, err = res.id() + if err != nil { + return nil, err + } + } else { + res.Resource.Id = id + } + + return &res, nil +} + +func (s *mqlGcpIamPolicy) Validate() error { + // required arguments + if _, ok := s.Cache.Load("id"); !ok { + return errors.New("Initialized \"gcp.iamPolicy\" resource without a \"id\". This field is required.") + } + if _, ok := s.Cache.Load("auditConfigs"); !ok { + return errors.New("Initialized \"gcp.iamPolicy\" resource without a \"auditConfigs\". This field is required.") + } + if _, ok := s.Cache.Load("bindings"); !ok { + return errors.New("Initialized \"gcp.iamPolicy\" resource without a \"bindings\". This field is required.") + } + if _, ok := s.Cache.Load("version"); !ok { + return errors.New("Initialized \"gcp.iamPolicy\" resource without a \"version\". This field is required.") + } + + return nil +} + +// Register accessor autogenerated +func (s *mqlGcpIamPolicy) Register(name string) error { + log.Trace().Str("field", name).Msg("[gcp.iamPolicy].Register") + switch name { + case "id": + return nil + case "auditConfigs": + return nil + case "bindings": + return nil + case "version": + return nil + default: + return errors.New("Cannot find field '" + name + "' in \"gcp.iamPolicy\" resource") + } +} + +// Field accessor autogenerated +func (s *mqlGcpIamPolicy) Field(name string) (interface{}, error) { + log.Trace().Str("field", name).Msg("[gcp.iamPolicy].Field") + switch name { + case "id": + return s.Id() + case "auditConfigs": + return s.AuditConfigs() + case "bindings": + return s.Bindings() + case "version": + return s.Version() + default: + return nil, fmt.Errorf("Cannot find field '" + name + "' in \"gcp.iamPolicy\" resource") + } +} + +// Id accessor autogenerated +func (s *mqlGcpIamPolicy) Id() (string, error) { + res, ok := s.Cache.Load("id") + if !ok || !res.Valid { + return "", errors.New("\"gcp.iamPolicy\" failed: no value provided for static field \"id\"") + } + if res.Error != nil { + return "", res.Error + } + tres, ok := res.Data.(string) + if !ok { + return "", fmt.Errorf("\"gcp.iamPolicy\" failed to cast field \"id\" to the right type (string): %#v", res) + } + return tres, nil +} + +// AuditConfigs accessor autogenerated +func (s *mqlGcpIamPolicy) AuditConfigs() ([]interface{}, error) { + res, ok := s.Cache.Load("auditConfigs") + if !ok || !res.Valid { + return nil, errors.New("\"gcp.iamPolicy\" failed: no value provided for static field \"auditConfigs\"") + } + if res.Error != nil { + return nil, res.Error + } + tres, ok := res.Data.([]interface{}) + if !ok { + return nil, fmt.Errorf("\"gcp.iamPolicy\" failed to cast field \"auditConfigs\" to the right type ([]interface{}): %#v", res) + } + return tres, nil +} + +// Bindings accessor autogenerated +func (s *mqlGcpIamPolicy) Bindings() ([]interface{}, error) { + res, ok := s.Cache.Load("bindings") + if !ok || !res.Valid { + return nil, errors.New("\"gcp.iamPolicy\" failed: no value provided for static field \"bindings\"") + } + if res.Error != nil { + return nil, res.Error + } + tres, ok := res.Data.([]interface{}) + if !ok { + return nil, fmt.Errorf("\"gcp.iamPolicy\" failed to cast field \"bindings\" to the right type ([]interface{}): %#v", res) + } + return tres, nil +} + +// Version accessor autogenerated +func (s *mqlGcpIamPolicy) Version() (int64, error) { + res, ok := s.Cache.Load("version") + if !ok || !res.Valid { + return 0, errors.New("\"gcp.iamPolicy\" failed: no value provided for static field \"version\"") + } + if res.Error != nil { + return 0, res.Error + } + tres, ok := res.Data.(int64) + if !ok { + return 0, fmt.Errorf("\"gcp.iamPolicy\" failed to cast field \"version\" to the right type (int64): %#v", res) + } + return tres, nil +} + +// Compute accessor autogenerated +func (s *mqlGcpIamPolicy) MqlCompute(name string) error { + log.Trace().Str("field", name).Msg("[gcp.iamPolicy].MqlCompute") + switch name { + case "id": + return nil + case "auditConfigs": + return nil + case "bindings": + return nil + case "version": + return nil + default: + return errors.New("Cannot find field '" + name + "' in \"gcp.iamPolicy\" resource") + } +} + +// GcpIamPolicyBinding resource interface +type GcpIamPolicyBinding interface { MqlResource() (*resources.Resource) MqlCompute(string) error Field(string) (interface{}, error) @@ -2628,21 +2842,21 @@ type GcpResourcemanagerBinding interface { Role() (string, error) } -// mqlGcpResourcemanagerBinding for the gcp.resourcemanager.binding resource -type mqlGcpResourcemanagerBinding struct { +// mqlGcpIamPolicyBinding for the gcp.iamPolicy.binding resource +type mqlGcpIamPolicyBinding struct { *resources.Resource } // MqlResource to retrieve the underlying resource info -func (s *mqlGcpResourcemanagerBinding) MqlResource() *resources.Resource { +func (s *mqlGcpIamPolicyBinding) MqlResource() *resources.Resource { return s.Resource } -// create a new instance of the gcp.resourcemanager.binding resource -func newGcpResourcemanagerBinding(runtime *resources.Runtime, args *resources.Args) (interface{}, error) { +// create a new instance of the gcp.iamPolicy.binding resource +func newGcpIamPolicyBinding(runtime *resources.Runtime, args *resources.Args) (interface{}, error) { // User hooks var err error - res := mqlGcpResourcemanagerBinding{runtime.NewResource("gcp.resourcemanager.binding")} + res := mqlGcpIamPolicyBinding{runtime.NewResource("gcp.iamPolicy.binding")} // assign all named fields var id string @@ -2656,24 +2870,24 @@ func newGcpResourcemanagerBinding(runtime *resources.Runtime, args *resources.Ar switch name { case "id": if _, ok := val.(string); !ok { - return nil, errors.New("Failed to initialize \"gcp.resourcemanager.binding\", its \"id\" argument has the wrong type (expected type \"string\")") + return nil, errors.New("Failed to initialize \"gcp.iamPolicy.binding\", its \"id\" argument has the wrong type (expected type \"string\")") } case "members": if _, ok := val.([]interface{}); !ok { - return nil, errors.New("Failed to initialize \"gcp.resourcemanager.binding\", its \"members\" argument has the wrong type (expected type \"[]interface{}\")") + return nil, errors.New("Failed to initialize \"gcp.iamPolicy.binding\", its \"members\" argument has the wrong type (expected type \"[]interface{}\")") } case "role": if _, ok := val.(string); !ok { - return nil, errors.New("Failed to initialize \"gcp.resourcemanager.binding\", its \"role\" argument has the wrong type (expected type \"string\")") + return nil, errors.New("Failed to initialize \"gcp.iamPolicy.binding\", its \"role\" argument has the wrong type (expected type \"string\")") } case "__id": idVal, ok := val.(string) if !ok { - return nil, errors.New("Failed to initialize \"gcp.resourcemanager.binding\", its \"__id\" argument has the wrong type (expected type \"string\")") + return nil, errors.New("Failed to initialize \"gcp.iamPolicy.binding\", its \"__id\" argument has the wrong type (expected type \"string\")") } id = idVal default: - return nil, errors.New("Initialized gcp.resourcemanager.binding with unknown argument " + name) + return nil, errors.New("Initialized gcp.iamPolicy.binding with unknown argument " + name) } res.Cache.Store(name, &resources.CacheEntry{Data: val, Valid: true, Timestamp: now}) } @@ -2691,24 +2905,24 @@ func newGcpResourcemanagerBinding(runtime *resources.Runtime, args *resources.Ar return &res, nil } -func (s *mqlGcpResourcemanagerBinding) Validate() error { +func (s *mqlGcpIamPolicyBinding) Validate() error { // required arguments if _, ok := s.Cache.Load("id"); !ok { - return errors.New("Initialized \"gcp.resourcemanager.binding\" resource without a \"id\". This field is required.") + return errors.New("Initialized \"gcp.iamPolicy.binding\" resource without a \"id\". This field is required.") } if _, ok := s.Cache.Load("members"); !ok { - return errors.New("Initialized \"gcp.resourcemanager.binding\" resource without a \"members\". This field is required.") + return errors.New("Initialized \"gcp.iamPolicy.binding\" resource without a \"members\". This field is required.") } if _, ok := s.Cache.Load("role"); !ok { - return errors.New("Initialized \"gcp.resourcemanager.binding\" resource without a \"role\". This field is required.") + return errors.New("Initialized \"gcp.iamPolicy.binding\" resource without a \"role\". This field is required.") } return nil } // Register accessor autogenerated -func (s *mqlGcpResourcemanagerBinding) Register(name string) error { - log.Trace().Str("field", name).Msg("[gcp.resourcemanager.binding].Register") +func (s *mqlGcpIamPolicyBinding) Register(name string) error { + log.Trace().Str("field", name).Msg("[gcp.iamPolicy.binding].Register") switch name { case "id": return nil @@ -2717,13 +2931,13 @@ func (s *mqlGcpResourcemanagerBinding) Register(name string) error { case "role": return nil default: - return errors.New("Cannot find field '" + name + "' in \"gcp.resourcemanager.binding\" resource") + return errors.New("Cannot find field '" + name + "' in \"gcp.iamPolicy.binding\" resource") } } // Field accessor autogenerated -func (s *mqlGcpResourcemanagerBinding) Field(name string) (interface{}, error) { - log.Trace().Str("field", name).Msg("[gcp.resourcemanager.binding].Field") +func (s *mqlGcpIamPolicyBinding) Field(name string) (interface{}, error) { + log.Trace().Str("field", name).Msg("[gcp.iamPolicy.binding].Field") switch name { case "id": return s.Id() @@ -2732,61 +2946,61 @@ func (s *mqlGcpResourcemanagerBinding) Field(name string) (interface{}, error) { case "role": return s.Role() default: - return nil, fmt.Errorf("Cannot find field '" + name + "' in \"gcp.resourcemanager.binding\" resource") + return nil, fmt.Errorf("Cannot find field '" + name + "' in \"gcp.iamPolicy.binding\" resource") } } // Id accessor autogenerated -func (s *mqlGcpResourcemanagerBinding) Id() (string, error) { +func (s *mqlGcpIamPolicyBinding) Id() (string, error) { res, ok := s.Cache.Load("id") if !ok || !res.Valid { - return "", errors.New("\"gcp.resourcemanager.binding\" failed: no value provided for static field \"id\"") + return "", errors.New("\"gcp.iamPolicy.binding\" failed: no value provided for static field \"id\"") } if res.Error != nil { return "", res.Error } tres, ok := res.Data.(string) if !ok { - return "", fmt.Errorf("\"gcp.resourcemanager.binding\" failed to cast field \"id\" to the right type (string): %#v", res) + return "", fmt.Errorf("\"gcp.iamPolicy.binding\" failed to cast field \"id\" to the right type (string): %#v", res) } return tres, nil } // Members accessor autogenerated -func (s *mqlGcpResourcemanagerBinding) Members() ([]interface{}, error) { +func (s *mqlGcpIamPolicyBinding) Members() ([]interface{}, error) { res, ok := s.Cache.Load("members") if !ok || !res.Valid { - return nil, errors.New("\"gcp.resourcemanager.binding\" failed: no value provided for static field \"members\"") + return nil, errors.New("\"gcp.iamPolicy.binding\" failed: no value provided for static field \"members\"") } if res.Error != nil { return nil, res.Error } tres, ok := res.Data.([]interface{}) if !ok { - return nil, fmt.Errorf("\"gcp.resourcemanager.binding\" failed to cast field \"members\" to the right type ([]interface{}): %#v", res) + return nil, fmt.Errorf("\"gcp.iamPolicy.binding\" failed to cast field \"members\" to the right type ([]interface{}): %#v", res) } return tres, nil } // Role accessor autogenerated -func (s *mqlGcpResourcemanagerBinding) Role() (string, error) { +func (s *mqlGcpIamPolicyBinding) Role() (string, error) { res, ok := s.Cache.Load("role") if !ok || !res.Valid { - return "", errors.New("\"gcp.resourcemanager.binding\" failed: no value provided for static field \"role\"") + return "", errors.New("\"gcp.iamPolicy.binding\" failed: no value provided for static field \"role\"") } if res.Error != nil { return "", res.Error } tres, ok := res.Data.(string) if !ok { - return "", fmt.Errorf("\"gcp.resourcemanager.binding\" failed to cast field \"role\" to the right type (string): %#v", res) + return "", fmt.Errorf("\"gcp.iamPolicy.binding\" failed to cast field \"role\" to the right type (string): %#v", res) } return tres, nil } // Compute accessor autogenerated -func (s *mqlGcpResourcemanagerBinding) MqlCompute(name string) error { - log.Trace().Str("field", name).Msg("[gcp.resourcemanager.binding].MqlCompute") +func (s *mqlGcpIamPolicyBinding) MqlCompute(name string) error { + log.Trace().Str("field", name).Msg("[gcp.iamPolicy.binding].MqlCompute") switch name { case "id": return nil @@ -2795,7 +3009,7 @@ func (s *mqlGcpResourcemanagerBinding) MqlCompute(name string) error { case "role": return nil default: - return errors.New("Cannot find field '" + name + "' in \"gcp.resourcemanager.binding\" resource") + return errors.New("Cannot find field '" + name + "' in \"gcp.iamPolicy.binding\" resource") } } @@ -12776,7 +12990,7 @@ type GcpProjectStorageServiceBucket interface { StorageClass() (string, error) Created() (*time.Time, error) Updated() (*time.Time, error) - IamPolicy() ([]interface{}, error) + IamPolicy() (GcpIamPolicy, error) IamConfiguration() (interface{}, error) RetentionPolicy() (interface{}, error) } @@ -12848,8 +13062,8 @@ func newGcpProjectStorageServiceBucket(runtime *resources.Runtime, args *resourc return nil, errors.New("Failed to initialize \"gcp.project.storageService.bucket\", its \"updated\" argument has the wrong type (expected type \"*time.Time\")") } case "iamPolicy": - if _, ok := val.([]interface{}); !ok { - return nil, errors.New("Failed to initialize \"gcp.project.storageService.bucket\", its \"iamPolicy\" argument has the wrong type (expected type \"[]interface{}\")") + if _, ok := val.(GcpIamPolicy); !ok { + return nil, errors.New("Failed to initialize \"gcp.project.storageService.bucket\", its \"iamPolicy\" argument has the wrong type (expected type \"GcpIamPolicy\")") } case "iamConfiguration": if _, ok := val.(interface{}); !ok { @@ -13157,7 +13371,7 @@ func (s *mqlGcpProjectStorageServiceBucket) Updated() (*time.Time, error) { } // IamPolicy accessor autogenerated -func (s *mqlGcpProjectStorageServiceBucket) IamPolicy() ([]interface{}, error) { +func (s *mqlGcpProjectStorageServiceBucket) IamPolicy() (GcpIamPolicy, error) { res, ok := s.Cache.Load("iamPolicy") if !ok || !res.Valid { if err := s.ComputeIamPolicy(); err != nil { @@ -13172,9 +13386,9 @@ func (s *mqlGcpProjectStorageServiceBucket) IamPolicy() ([]interface{}, error) { if res.Error != nil { return nil, res.Error } - tres, ok := res.Data.([]interface{}) + tres, ok := res.Data.(GcpIamPolicy) if !ok { - return nil, fmt.Errorf("\"gcp.project.storageService.bucket\" failed to cast field \"iamPolicy\" to the right type ([]interface{}): %#v", res) + return nil, fmt.Errorf("\"gcp.project.storageService.bucket\" failed to cast field \"iamPolicy\" to the right type (GcpIamPolicy): %#v", res) } return tres, nil } @@ -27908,7 +28122,7 @@ type GcpProjectKmsServiceKeyringCryptokey interface { DestroyScheduledDuration() (*time.Time, error) CryptoKeyBackend() (string, error) Versions() ([]interface{}, error) - IamPolicy() ([]interface{}, error) + IamPolicy() (GcpIamPolicy, error) } // mqlGcpProjectKmsServiceKeyringCryptokey for the gcp.project.kmsService.keyring.cryptokey resource @@ -27990,8 +28204,8 @@ func newGcpProjectKmsServiceKeyringCryptokey(runtime *resources.Runtime, args *r return nil, errors.New("Failed to initialize \"gcp.project.kmsService.keyring.cryptokey\", its \"versions\" argument has the wrong type (expected type \"[]interface{}\")") } case "iamPolicy": - if _, ok := val.([]interface{}); !ok { - return nil, errors.New("Failed to initialize \"gcp.project.kmsService.keyring.cryptokey\", its \"iamPolicy\" argument has the wrong type (expected type \"[]interface{}\")") + if _, ok := val.(GcpIamPolicy); !ok { + return nil, errors.New("Failed to initialize \"gcp.project.kmsService.keyring.cryptokey\", its \"iamPolicy\" argument has the wrong type (expected type \"GcpIamPolicy\")") } case "__id": idVal, ok := val.(string) @@ -28350,7 +28564,7 @@ func (s *mqlGcpProjectKmsServiceKeyringCryptokey) Versions() ([]interface{}, err } // IamPolicy accessor autogenerated -func (s *mqlGcpProjectKmsServiceKeyringCryptokey) IamPolicy() ([]interface{}, error) { +func (s *mqlGcpProjectKmsServiceKeyringCryptokey) IamPolicy() (GcpIamPolicy, error) { res, ok := s.Cache.Load("iamPolicy") if !ok || !res.Valid { if err := s.ComputeIamPolicy(); err != nil { @@ -28365,9 +28579,9 @@ func (s *mqlGcpProjectKmsServiceKeyringCryptokey) IamPolicy() ([]interface{}, er if res.Error != nil { return nil, res.Error } - tres, ok := res.Data.([]interface{}) + tres, ok := res.Data.(GcpIamPolicy) if !ok { - return nil, fmt.Errorf("\"gcp.project.kmsService.keyring.cryptokey\" failed to cast field \"iamPolicy\" to the right type ([]interface{}): %#v", res) + return nil, fmt.Errorf("\"gcp.project.kmsService.keyring.cryptokey\" failed to cast field \"iamPolicy\" to the right type (GcpIamPolicy): %#v", res) } return tres, nil } diff --git a/resources/packs/gcp/iam.go b/resources/packs/gcp/iam.go index 2dbece49a4..4297c3f4ee 100644 --- a/resources/packs/gcp/iam.go +++ b/resources/packs/gcp/iam.go @@ -5,11 +5,18 @@ import ( "fmt" admin "cloud.google.com/go/iam/admin/apiv1" + "go.mondoo.com/cnquery/resources" + "go.mondoo.com/cnquery/resources/packs/core" + "google.golang.org/api/cloudresourcemanager/v1" "google.golang.org/api/iterator" "google.golang.org/api/option" adminpb "google.golang.org/genproto/googleapis/iam/admin/v1" ) +func (g *mqlGcpIamPolicy) id() (string, error) { + return g.Id() +} + func (g *mqlGcpProjectIamService) id() (string, error) { projectId, err := g.ProjectId() if err != nil { @@ -140,3 +147,37 @@ func (g *mqlGcpProjectIamServiceServiceAccount) GetKeys() ([]interface{}, error) } return mqlKeys, nil } + +func auditConfigsToMql(runtime *resources.Runtime, auditCfgs []*cloudresourcemanager.AuditConfig, idPrefix string) ([]interface{}, error) { + mqlAuditCfgs := make([]interface{}, 0, len(auditCfgs)) + for _, a := range auditCfgs { + cfgs := make([]interface{}, 0, len(a.AuditLogConfigs)) + for _, c := range a.AuditLogConfigs { + cfgs = append(cfgs, map[string]interface{}{ + "exemptedMembers": core.StrSliceToInterface(c.ExemptedMembers), + "logType": c.LogType, + }) + } + mqlAuditCfgs = append(mqlAuditCfgs, map[string]interface{}{ + "auditLogConfigs": cfgs, + "service": a.Service, + }) + } + return mqlAuditCfgs, nil +} + +func bindingsToMql(runtime *resources.Runtime, bindings []*cloudresourcemanager.Binding, idPrefix string) ([]interface{}, error) { + mqlBindings := make([]interface{}, 0, len(bindings)) + for i, b := range bindings { + mqlServiceaccount, err := runtime.CreateResource("gcp.iamPolicy.binding", + "id", fmt.Sprintf("%s/%d", idPrefix, i), + "role", b.Role, + "members", core.StrSliceToInterface(b.Members), + ) + if err != nil { + return nil, err + } + mqlBindings = append(mqlBindings, mqlServiceaccount) + } + return mqlBindings, nil +} diff --git a/resources/packs/gcp/info/gcp.lr.json b/resources/packs/gcp/info/gcp.lr.json index 871912dbe0..493b8c16dd 100644 --- a/resources/packs/gcp/info/gcp.lr.json +++ b/resources/packs/gcp/info/gcp.lr.json @@ -1 +1 @@ -{"resources":{"gcloud.compute":{"id":"gcp.project.computeService","name":"gcp.project.computeService","fields":{"backendServices":{"name":"backendServices","type":"\u0019\u001bgcp.project.computeService.backendService","title":"List of backend services"},"disks":{"name":"disks","type":"\u0019\u001bgcp.project.computeService.disk","title":"Google Compute Engine disks in a project"},"firewalls":{"name":"firewalls","type":"\u0019\u001bgcp.project.computeService.firewall","title":"Google Compute Engine firewalls in a project"},"images":{"name":"images","type":"\u0019\u001bgcp.project.computeService.image","title":"Google Compute Engine images in a project"},"instances":{"name":"instances","type":"\u0019\u001bgcp.project.computeService.instance","title":"Google Compute Engine instances in a project"},"machineTypes":{"name":"machineTypes","type":"\u0019\u001bgcp.project.computeService.machineType","title":"Google Compute Engine machine types in a project"},"networks":{"name":"networks","type":"\u0019\u001bgcp.project.computeService.network","title":"Google Compute Engine VPC Network in a project"},"projectId":{"name":"projectId","type":"\u0007","is_mandatory":true,"title":"Project ID"},"regions":{"name":"regions","type":"\u0019\u001bgcp.project.computeService.region","title":"Project Regions"},"routers":{"name":"routers","type":"\u0019\u001bgcp.project.computeService.router","title":"Cloud Routers in project"},"snapshots":{"name":"snapshots","type":"\u0019\u001bgcp.project.computeService.snapshot","title":"Google Compute Engine snapshots in a project"},"subnetworks":{"name":"subnetworks","type":"\u0019\u001bgcp.project.computeService.subnetwork","title":"Logical partition of a Virtual Private Cloud network"},"zones":{"name":"zones","type":"\u0019\u001bgcp.project.computeService.zone","title":"Project Zones"}},"title":"GCP Compute Engine","private":true},"gcloud.compute.instance":{"id":"gcp.project.computeService.instance","name":"gcp.project.computeService.instance","fields":{"canIpForward":{"name":"canIpForward","type":"\u0004","is_mandatory":true,"title":"Indicates if this instance is allowed to send and receive packets with non-matching destination or source IPs"},"confidentialInstanceConfig":{"name":"confidentialInstanceConfig","type":"\n","is_mandatory":true,"title":"Confidential instance configuration"},"cpuPlatform":{"name":"cpuPlatform","type":"\u0007","is_mandatory":true,"title":"The CPU platform used by this instance"},"created":{"name":"created","type":"\t","is_mandatory":true,"title":"Creation timestamp"},"deletionProtection":{"name":"deletionProtection","type":"\u0004","is_mandatory":true,"title":"Indicates if instance is protected against deletion"},"description":{"name":"description","type":"\u0007","is_mandatory":true,"title":"User-friendly name for this instance"},"disks":{"name":"disks","type":"\u0019\u001bgcp.project.computeService.attachedDisk","is_mandatory":true,"title":"Disks associated with this instance"},"enableDisplay":{"name":"enableDisplay","type":"\u0004","is_mandatory":true,"title":"Indicates if the instance has Display enabled"},"enableIntegrityMonitoring":{"name":"enableIntegrityMonitoring","type":"\u0004","is_mandatory":true,"title":"Indicates if Shielded Instance integrity monitoring is enabled"},"enableSecureBoot":{"name":"enableSecureBoot","type":"\u0004","is_mandatory":true,"title":"Indicates if Shielded Instance secure boot is enabled"},"enableVtpm":{"name":"enableVtpm","type":"\u0004","is_mandatory":true,"title":"Indicates if Shielded Instance vTPM is enabled"},"fingerprint":{"name":"fingerprint","type":"\u0007","is_mandatory":true,"title":"Instance Fingerprint"},"guestAccelerators":{"name":"guestAccelerators","type":"\u0019\n","is_mandatory":true,"title":"Attached list of accelerator cards"},"hostname":{"name":"hostname","type":"\u0007","is_mandatory":true,"title":"Hostname of the instance"},"id":{"name":"id","type":"\u0007","is_mandatory":true,"title":"Unique identifier for the resource"},"keyRevocationActionType":{"name":"keyRevocationActionType","type":"\u0007","is_mandatory":true,"title":"KeyRevocationActionType of the instance"},"labels":{"name":"labels","type":"\u001a\u0007\u0007","is_mandatory":true,"title":"User-provided labels"},"lastStartTimestamp":{"name":"lastStartTimestamp","type":"\t","is_mandatory":true,"title":"Last start timestamp"},"lastStopTimestamp":{"name":"lastStopTimestamp","type":"\t","is_mandatory":true,"title":"Last stop timestamp"},"lastSuspendedTimestamp":{"name":"lastSuspendedTimestamp","type":"\t","is_mandatory":true,"title":"Last suspended timestamp"},"machineType":{"name":"machineType","type":"\u001bgcp.project.computeService.machineType","title":"Machine type"},"metadata":{"name":"metadata","type":"\u001a\u0007\u0007","is_mandatory":true,"title":"Instance Metadata"},"minCpuPlatform":{"name":"minCpuPlatform","type":"\u0007","is_mandatory":true,"title":"Minimum CPU platform for the VM instance"},"name":{"name":"name","type":"\u0007","is_mandatory":true,"title":"User-friendly name for this instance"},"networkInterfaces":{"name":"networkInterfaces","type":"\u0019\n","is_mandatory":true,"title":"Network configurations for this instance"},"physicalHostResourceStatus":{"name":"physicalHostResourceStatus","type":"\u0007","is_mandatory":true,"title":"Resource status for physical host"},"privateIpv6GoogleAccess":{"name":"privateIpv6GoogleAccess","type":"\u0007","is_mandatory":true,"title":"private IPv6 google access type for the VM"},"projectId":{"name":"projectId","type":"\u0007","is_mandatory":true,"title":"Project ID"},"reservationAffinity":{"name":"reservationAffinity","type":"\n","is_mandatory":true,"title":"Reservations that this instance can consume from"},"resourcePolicies":{"name":"resourcePolicies","type":"\u0019\u0007","is_mandatory":true,"title":"Resource policies applied to this instance"},"scheduling":{"name":"scheduling","type":"\n","is_mandatory":true,"title":"Scheduling options"},"serviceAccounts":{"name":"serviceAccounts","type":"\u0019\u001bgcp.project.computeService.serviceaccount","is_mandatory":true,"title":"Service accounts authorized for this instance"},"sourceMachineImage":{"name":"sourceMachineImage","type":"\u0007","is_mandatory":true,"title":"Source machine image"},"startRestricted":{"name":"startRestricted","type":"\u0004","is_mandatory":true,"title":"Indicates if VM has been restricted for start because Compute Engine has detected suspicious activity"},"status":{"name":"status","type":"\u0007","is_mandatory":true,"title":"Instance status"},"statusMessage":{"name":"statusMessage","type":"\u0007","is_mandatory":true,"title":"Human-readable explanation of the status"},"tags":{"name":"tags","type":"\u0019\u0007","is_mandatory":true,"title":"Tags associated with this instance"},"totalEgressBandwidthTier":{"name":"totalEgressBandwidthTier","type":"\u0007","is_mandatory":true,"title":"Network performance configuration"},"zone":{"name":"zone","type":"\u001bgcp.project.computeService.zone","is_mandatory":true,"title":"Instance zone"}},"title":"GCP Compute Instances","private":true,"defaults":"name"},"gcloud.compute.serviceaccount":{"id":"gcp.project.computeService.serviceaccount","name":"gcp.project.computeService.serviceaccount","fields":{"email":{"name":"email","type":"\u0007","is_mandatory":true,"title":"Service account email address"},"scopes":{"name":"scopes","type":"\u0019\u0007","is_mandatory":true,"title":"Service account scopes"}},"title":"GCP Compute Service Account","private":true,"defaults":"email"},"gcloud.organization":{"id":"gcp.organization","name":"gcp.organization","fields":{"accessApprovalSettings":{"name":"accessApprovalSettings","type":"\u001bgcp.accessApprovalSettings","title":"Access approval settings"},"iamPolicy":{"name":"iamPolicy","type":"\u0019\u001bgcp.resourcemanager.binding","title":"Organization IAM policy"},"id":{"name":"id","type":"\u0007","is_mandatory":true,"title":"Organization ID"},"lifecycleState":{"name":"lifecycleState","type":"\u0007","is_mandatory":true,"title":"Organization state"},"name":{"name":"name","type":"\u0007","is_mandatory":true,"title":"Organization name"}},"title":"GCP Cloud Organization","defaults":"id"},"gcloud.project":{"id":"gcp.project","name":"gcp.project","fields":{"accessApprovalSettings":{"name":"accessApprovalSettings","type":"\u001bgcp.accessApprovalSettings","title":"Access approval settings"},"apiKeys":{"name":"apiKeys","type":"\u0019\u001bgcp.project.apiKey","title":"API keys"},"bigquery":{"name":"bigquery","type":"\u001bgcp.project.bigqueryService","title":"GCP BigQuery Resources"},"cloudFunctions":{"name":"cloudFunctions","type":"\u0019\u001bgcp.project.cloudFunction","title":"GCP Cloud Functions"},"cloudRun":{"name":"cloudRun","type":"\u001bgcp.project.cloudRunService","title":"GCP Cloud Run Resources"},"commonInstanceMetadata":{"name":"commonInstanceMetadata","type":"\u001a\u0007\u0007","title":"Common instance metadata for the project"},"compute":{"name":"compute","type":"\u001bgcp.project.computeService","title":"GCP Compute Resources for the Project"},"createTime":{"name":"createTime","type":"\t","title":"Creation time"},"dataproc":{"name":"dataproc","type":"\u001bgcp.project.dataprocService","title":"GCP Dataproc resources"},"dns":{"name":"dns","type":"\u001bgcp.project.dnsService","title":"GCP Cloud DNS"},"essentialContacts":{"name":"essentialContacts","type":"\u0019\u001bgcp.essentialContact","title":"GCP Contacts for the project"},"gke":{"name":"gke","type":"\u001bgcp.project.gkeService","title":"GCP GKE resources"},"iam":{"name":"iam","type":"\u001bgcp.project.iamService","title":"GCP IAM Resources"},"iamPolicy":{"name":"iamPolicy","type":"\u0019\u001bgcp.resourcemanager.binding","title":"IAM policy"},"id":{"name":"id","type":"\u0007","title":"Unique, user-assigned id of the project"},"kms":{"name":"kms","type":"\u001bgcp.project.kmsService","title":"KMS-related resources"},"labels":{"name":"labels","type":"\u001a\u0007\u0007","title":"The labels associated with this project"},"lifecycleState":{"name":"lifecycleState","type":"\u0007","title":"Deprecated. Use `state` instead."},"logging":{"name":"logging","type":"\u001bgcp.project.loggingservice","title":"Logging resources"},"monitoring":{"name":"monitoring","type":"\u001bgcp.project.monitoringService","title":"Monitoring resources"},"name":{"name":"name","type":"\u0007","title":"The unique resource name"},"number":{"name":"number","type":"\u0007","title":"Deprecated. Use `id` instead."},"pubsub":{"name":"pubsub","type":"\u001bgcp.project.pubsubService","title":"GCP Pub/Sub-related Resources"},"recommendations":{"name":"recommendations","type":"\u0019\u001bgcp.recommendation","title":"List of recommendations"},"services":{"name":"services","type":"\u0019\u001bgcp.service","title":"List of available and enabled services for project"},"sql":{"name":"sql","type":"\u001bgcp.project.sqlService","title":"GCP Cloud SQL Resources"},"state":{"name":"state","type":"\u0007","title":"The project lifecycle state"},"storage":{"name":"storage","type":"\u001bgcp.project.storageService","title":"GCP Storage resources"}},"title":"Google Cloud Platform Project","defaults":"name"},"gcloud.resourcemanager.binding":{"id":"gcp.resourcemanager.binding","name":"gcp.resourcemanager.binding","fields":{"id":{"name":"id","type":"\u0007","is_mandatory":true,"title":"Internal ID"},"members":{"name":"members","type":"\u0019\u0007","is_mandatory":true,"title":"Principals requesting access for a Google Cloud resource"},"role":{"name":"role","type":"\u0007","is_mandatory":true,"title":"Role assigned to the list of members or principals"}},"title":"GCP Resource Manager Binding","private":true},"gcloud.sql":{"id":"gcp.project.sqlService","name":"gcp.project.sqlService","fields":{"instances":{"name":"instances","type":"\u0019\u001bgcp.project.sqlService.instance","title":"List of Cloud SQL instances in the current project"},"projectId":{"name":"projectId","type":"\u0007","is_mandatory":true,"title":"Project ID"}},"title":"GCP Cloud SQL Resources","private":true},"gcloud.sql.instance":{"id":"gcp.project.sqlService.instance","name":"gcp.project.sqlService.instance","fields":{"availableMaintenanceVersions":{"name":"availableMaintenanceVersions","type":"\u0019\u0007","is_mandatory":true,"title":"All maintenance versions applicable on the instance"},"backendType":{"name":"backendType","type":"\u0007","is_mandatory":true,"title":"Backend type"},"connectionName":{"name":"connectionName","type":"\u0007","is_mandatory":true,"title":"Connection name of the instance used in connection strings"},"created":{"name":"created","type":"\t","is_mandatory":true,"title":"Creation timestamp"},"currentDiskSize":{"name":"currentDiskSize","type":"\u0005","is_mandatory":true,"title":"Current disk usage of the instance in bytes. This is deprecated; use monitoring should be used instead."},"databaseInstalledVersion":{"name":"databaseInstalledVersion","type":"\u0007","is_mandatory":true,"title":"Current database version running on the instance"},"databaseVersion":{"name":"databaseVersion","type":"\u0007","is_mandatory":true,"title":"Database engine type and version"},"databases":{"name":"databases","type":"\u0019\u001bgcp.project.sqlService.instance.database","title":"List of the databases in the current SQL instance"},"diskEncryptionConfiguration":{"name":"diskEncryptionConfiguration","type":"\n","is_mandatory":true,"title":"Disk encryption configuration"},"diskEncryptionStatus":{"name":"diskEncryptionStatus","type":"\n","is_mandatory":true,"title":"Disk encryption status"},"failoverReplica":{"name":"failoverReplica","type":"\n","is_mandatory":true,"title":"Name and status of the failover replica"},"gceZone":{"name":"gceZone","type":"\u0007","is_mandatory":true,"title":"Compute Engine zone that the instance is currently serviced from"},"instanceType":{"name":"instanceType","type":"\u0007","is_mandatory":true,"title":"Instance type"},"ipAddresses":{"name":"ipAddresses","type":"\u0019\u001bgcp.project.sqlService.instance.ipMapping","is_mandatory":true,"title":"Assigned IP addresses"},"maintenanceVersion":{"name":"maintenanceVersion","type":"\u0007","is_mandatory":true,"title":"Current software version on the instance"},"masterInstanceName":{"name":"masterInstanceName","type":"\u0007","is_mandatory":true,"title":"Name of the instance that will act as primary in the replica"},"maxDiskSize":{"name":"maxDiskSize","type":"\u0005","is_mandatory":true,"title":"Maximum disk size in bytes"},"name":{"name":"name","type":"\u0007","is_mandatory":true,"title":"Instance name"},"project":{"name":"project","type":"\u0007","is_mandatory":true,"title":"This is deprecated; use projectId instead."},"projectId":{"name":"projectId","type":"\u0007","is_mandatory":true,"title":"Project ID"},"region":{"name":"region","type":"\u0007","is_mandatory":true,"title":"Region"},"replicaNames":{"name":"replicaNames","type":"\u0019\u0007","is_mandatory":true,"title":"Replicas"},"serviceAccountEmailAddress":{"name":"serviceAccountEmailAddress","type":"\u0007","is_mandatory":true,"title":"Service account email address"},"settings":{"name":"settings","type":"\u001bgcp.project.sqlService.instance.settings","is_mandatory":true,"title":"Settings"},"state":{"name":"state","type":"\u0007","is_mandatory":true,"title":"Instance state"}},"title":"GCP Cloud SQL Instance","private":true,"defaults":"name"},"gcloud.storage":{"id":"gcp.project.storageService","name":"gcp.project.storageService","fields":{"buckets":{"name":"buckets","type":"\u0019\u001bgcp.project.storageService.bucket","title":"List all buckets"},"projectId":{"name":"projectId","type":"\u0007","is_mandatory":true,"title":"Project ID"}},"title":"GCP Cloud Storage","private":true},"gcloud.storage.bucket":{"id":"gcp.project.storageService.bucket","name":"gcp.project.storageService.bucket","fields":{"created":{"name":"created","type":"\t","is_mandatory":true,"title":"Creation timestamp"},"iamConfiguration":{"name":"iamConfiguration","type":"\n","is_mandatory":true,"title":"IAM configuration"},"iamPolicy":{"name":"iamPolicy","type":"\u0019\u001bgcp.resourcemanager.binding","title":"IAM policy"},"id":{"name":"id","type":"\u0007","is_mandatory":true,"title":"Bucket ID"},"labels":{"name":"labels","type":"\u001a\u0007\u0007","is_mandatory":true,"title":"User-defined labels"},"location":{"name":"location","type":"\u0007","is_mandatory":true,"title":"Bucket location"},"locationType":{"name":"locationType","type":"\u0007","is_mandatory":true,"title":"Bucket location type"},"name":{"name":"name","type":"\u0007","is_mandatory":true,"title":"Bucket name"},"projectId":{"name":"projectId","type":"\u0007","is_mandatory":true,"title":"Project ID"},"projectNumber":{"name":"projectNumber","type":"\u0007","is_mandatory":true,"title":"Project number"},"retentionPolicy":{"name":"retentionPolicy","type":"\n","is_mandatory":true,"title":"Retention policy"},"storageClass":{"name":"storageClass","type":"\u0007","is_mandatory":true,"title":"Default storage class"},"updated":{"name":"updated","type":"\t","is_mandatory":true,"title":"Update timestamp"}},"title":"GCP Cloud Storage Bucket","private":true,"defaults":"id"},"gcp.accessApprovalSettings":{"id":"gcp.accessApprovalSettings","name":"gcp.accessApprovalSettings","fields":{"activeKeyVersion":{"name":"activeKeyVersion","type":"\u0007","is_mandatory":true,"title":"Asymmetric crypto key version to use for signing approval requests"},"ancestorHasActiveKeyVersion":{"name":"ancestorHasActiveKeyVersion","type":"\u0004","is_mandatory":true,"title":"Whether an ancestor of this project or folder has set active key version (unset for organizations since organizations do not have ancestors)"},"enrolledAncestor":{"name":"enrolledAncestor","type":"\u0004","is_mandatory":true,"title":"Whether at least one service is enrolled for access approval in one or more ancestors of the project or folder (unset for organizations since organizations do not have ancestors)"},"enrolledServices":{"name":"enrolledServices","type":"\u0019\n","is_mandatory":true,"title":"List of Google Cloud services for which the given resource has access approval enrolled"},"invalidKeyVersion":{"name":"invalidKeyVersion","type":"\u0004","is_mandatory":true,"title":"Whether there is some configuration issue with the active key version configured at this level of the resource hierarchy"},"notificationEmails":{"name":"notificationEmails","type":"\u0019\u0007","is_mandatory":true,"title":"List of email addresses to which notifications relating to approval requests should be sent"},"resourcePath":{"name":"resourcePath","type":"\u0007","is_mandatory":true,"title":"Resource path"}},"title":"GCP access approval settings","private":true},"gcp.bigquery":{"id":"gcp.project.bigqueryService","name":"gcp.project.bigqueryService","fields":{"datasets":{"name":"datasets","type":"\u0019\u001bgcp.project.bigqueryService.dataset","title":"List of BigQuery datasets"},"projectId":{"name":"projectId","type":"\u0007","is_mandatory":true,"title":"Project ID"}},"title":"GCP BigQuery Resources","private":true},"gcp.compute":{"id":"gcp.project.computeService","name":"gcp.project.computeService","fields":{"backendServices":{"name":"backendServices","type":"\u0019\u001bgcp.project.computeService.backendService","title":"List of backend services"},"disks":{"name":"disks","type":"\u0019\u001bgcp.project.computeService.disk","title":"Google Compute Engine disks in a project"},"firewalls":{"name":"firewalls","type":"\u0019\u001bgcp.project.computeService.firewall","title":"Google Compute Engine firewalls in a project"},"images":{"name":"images","type":"\u0019\u001bgcp.project.computeService.image","title":"Google Compute Engine images in a project"},"instances":{"name":"instances","type":"\u0019\u001bgcp.project.computeService.instance","title":"Google Compute Engine instances in a project"},"machineTypes":{"name":"machineTypes","type":"\u0019\u001bgcp.project.computeService.machineType","title":"Google Compute Engine machine types in a project"},"networks":{"name":"networks","type":"\u0019\u001bgcp.project.computeService.network","title":"Google Compute Engine VPC Network in a project"},"projectId":{"name":"projectId","type":"\u0007","is_mandatory":true,"title":"Project ID"},"regions":{"name":"regions","type":"\u0019\u001bgcp.project.computeService.region","title":"Project Regions"},"routers":{"name":"routers","type":"\u0019\u001bgcp.project.computeService.router","title":"Cloud Routers in project"},"snapshots":{"name":"snapshots","type":"\u0019\u001bgcp.project.computeService.snapshot","title":"Google Compute Engine snapshots in a project"},"subnetworks":{"name":"subnetworks","type":"\u0019\u001bgcp.project.computeService.subnetwork","title":"Logical partition of a Virtual Private Cloud network"},"zones":{"name":"zones","type":"\u0019\u001bgcp.project.computeService.zone","title":"Project Zones"}},"title":"GCP Compute Engine","private":true},"gcp.dns":{"id":"gcp.project.dnsService","name":"gcp.project.dnsService","fields":{"managedZones":{"name":"managedZones","type":"\u0019\u001bgcp.project.dnsService.managedzone","title":"Cloud DNS managed zone in project"},"policies":{"name":"policies","type":"\u0019\u001bgcp.project.dnsService.policy","title":"Cloud DNS rules in project"},"projectId":{"name":"projectId","type":"\u0007","is_mandatory":true,"title":"Project ID"}},"title":"GCP Cloud DNS","private":true},"gcp.essentialContact":{"id":"gcp.essentialContact","name":"gcp.essentialContact","fields":{"email":{"name":"email","type":"\u0007","is_mandatory":true,"title":"Email address to send notifications to"},"languageTag":{"name":"languageTag","type":"\u0007","is_mandatory":true,"title":"Preferred language for notifications, as a ISO 639-1 language code"},"notificationCategories":{"name":"notificationCategories","type":"\u0019\u0007","is_mandatory":true,"title":"Categories of notifications that the contact will receive communication for"},"resourcePath":{"name":"resourcePath","type":"\u0007","is_mandatory":true,"title":"Full resource path"},"validated":{"name":"validated","type":"\t","is_mandatory":true,"title":"Last time the validation state was updated"},"validationState":{"name":"validationState","type":"\u0007","is_mandatory":true,"title":"Validity of the contact"}},"title":"GCP Contact","private":true,"defaults":"email notificationCategories"},"gcp.organization":{"id":"gcp.organization","name":"gcp.organization","fields":{"accessApprovalSettings":{"name":"accessApprovalSettings","type":"\u001bgcp.accessApprovalSettings","title":"Access approval settings"},"iamPolicy":{"name":"iamPolicy","type":"\u0019\u001bgcp.resourcemanager.binding","title":"Organization IAM policy"},"id":{"name":"id","type":"\u0007","is_mandatory":true,"title":"Organization ID"},"lifecycleState":{"name":"lifecycleState","type":"\u0007","is_mandatory":true,"title":"Organization state"},"name":{"name":"name","type":"\u0007","is_mandatory":true,"title":"Organization name"}},"title":"GCP Cloud Organization","defaults":"id"},"gcp.project":{"id":"gcp.project","name":"gcp.project","fields":{"accessApprovalSettings":{"name":"accessApprovalSettings","type":"\u001bgcp.accessApprovalSettings","title":"Access approval settings"},"apiKeys":{"name":"apiKeys","type":"\u0019\u001bgcp.project.apiKey","title":"API keys"},"bigquery":{"name":"bigquery","type":"\u001bgcp.project.bigqueryService","title":"GCP BigQuery Resources"},"cloudFunctions":{"name":"cloudFunctions","type":"\u0019\u001bgcp.project.cloudFunction","title":"GCP Cloud Functions"},"cloudRun":{"name":"cloudRun","type":"\u001bgcp.project.cloudRunService","title":"GCP Cloud Run Resources"},"commonInstanceMetadata":{"name":"commonInstanceMetadata","type":"\u001a\u0007\u0007","title":"Common instance metadata for the project"},"compute":{"name":"compute","type":"\u001bgcp.project.computeService","title":"GCP Compute Resources for the Project"},"createTime":{"name":"createTime","type":"\t","title":"Creation time"},"dataproc":{"name":"dataproc","type":"\u001bgcp.project.dataprocService","title":"GCP Dataproc resources"},"dns":{"name":"dns","type":"\u001bgcp.project.dnsService","title":"GCP Cloud DNS"},"essentialContacts":{"name":"essentialContacts","type":"\u0019\u001bgcp.essentialContact","title":"GCP Contacts for the project"},"gke":{"name":"gke","type":"\u001bgcp.project.gkeService","title":"GCP GKE resources"},"iam":{"name":"iam","type":"\u001bgcp.project.iamService","title":"GCP IAM Resources"},"iamPolicy":{"name":"iamPolicy","type":"\u0019\u001bgcp.resourcemanager.binding","title":"IAM policy"},"id":{"name":"id","type":"\u0007","title":"Unique, user-assigned id of the project"},"kms":{"name":"kms","type":"\u001bgcp.project.kmsService","title":"KMS-related resources"},"labels":{"name":"labels","type":"\u001a\u0007\u0007","title":"The labels associated with this project"},"lifecycleState":{"name":"lifecycleState","type":"\u0007","title":"Deprecated. Use `state` instead."},"logging":{"name":"logging","type":"\u001bgcp.project.loggingservice","title":"Logging resources"},"monitoring":{"name":"monitoring","type":"\u001bgcp.project.monitoringService","title":"Monitoring resources"},"name":{"name":"name","type":"\u0007","title":"The unique resource name"},"number":{"name":"number","type":"\u0007","title":"Deprecated. Use `id` instead."},"pubsub":{"name":"pubsub","type":"\u001bgcp.project.pubsubService","title":"GCP Pub/Sub-related Resources"},"recommendations":{"name":"recommendations","type":"\u0019\u001bgcp.recommendation","title":"List of recommendations"},"services":{"name":"services","type":"\u0019\u001bgcp.service","title":"List of available and enabled services for project"},"sql":{"name":"sql","type":"\u001bgcp.project.sqlService","title":"GCP Cloud SQL Resources"},"state":{"name":"state","type":"\u0007","title":"The project lifecycle state"},"storage":{"name":"storage","type":"\u001bgcp.project.storageService","title":"GCP Storage resources"}},"title":"Google Cloud Platform Project","defaults":"name"},"gcp.project.apiKey":{"id":"gcp.project.apiKey","name":"gcp.project.apiKey","fields":{"annotations":{"name":"annotations","type":"\u001a\u0007\u0007","is_mandatory":true,"title":"Annotations"},"created":{"name":"created","type":"\t","is_mandatory":true,"title":"Creation timestamp"},"deleted":{"name":"deleted","type":"\t","is_mandatory":true,"title":"Deletion timestamp"},"id":{"name":"id","type":"\u0007","is_mandatory":true,"title":"The ID of the key"},"keyString":{"name":"keyString","type":"\u0007","is_mandatory":true,"title":"Encrypted and signed value held by this key"},"name":{"name":"name","type":"\u0007","is_mandatory":true,"title":"Human-readable display name of this key"},"projectId":{"name":"projectId","type":"\u0007","is_mandatory":true,"title":"Project ID"},"resourcePath":{"name":"resourcePath","type":"\u0007","is_mandatory":true,"title":"Full resource path"},"restrictions":{"name":"restrictions","type":"\u001bgcp.project.apiKey.restrictions","is_mandatory":true,"title":"API key restrictions"},"updated":{"name":"updated","type":"\t","is_mandatory":true,"title":"Update timestamp"}},"title":"GCP Project API key","private":true,"defaults":"name"},"gcp.project.apiKey.restrictions":{"id":"gcp.project.apiKey.restrictions","name":"gcp.project.apiKey.restrictions","fields":{"androidKeyRestrictions":{"name":"androidKeyRestrictions","type":"\n","is_mandatory":true,"title":"The Android apps that are allowed to use the key"},"apiTargets":{"name":"apiTargets","type":"\u0019\n","is_mandatory":true,"title":"A restriction for a specific service and optionally one or more specific methods"},"browserKeyRestrictions":{"name":"browserKeyRestrictions","type":"\n","is_mandatory":true,"title":"The HTTP referrers that are allowed to use the key"},"iosKeyRestrictions":{"name":"iosKeyRestrictions","type":"\n","is_mandatory":true,"title":"The iOS apps that are allowed to use the key"},"parentResourcePath":{"name":"parentResourcePath","type":"\u0007","is_mandatory":true,"title":"Parent resource path"},"serverKeyRestrictions":{"name":"serverKeyRestrictions","type":"\n","is_mandatory":true,"title":"The IP addresses that are allowed to use the key"}},"title":"GCP Project API key restrictions","private":true},"gcp.project.bigqueryService":{"id":"gcp.project.bigqueryService","name":"gcp.project.bigqueryService","fields":{"datasets":{"name":"datasets","type":"\u0019\u001bgcp.project.bigqueryService.dataset","title":"List of BigQuery datasets"},"projectId":{"name":"projectId","type":"\u0007","is_mandatory":true,"title":"Project ID"}},"title":"GCP BigQuery Resources","private":true},"gcp.project.bigqueryService.dataset":{"id":"gcp.project.bigqueryService.dataset","name":"gcp.project.bigqueryService.dataset","fields":{"access":{"name":"access","type":"\u0019\u001bgcp.project.bigqueryService.dataset.accessEntry","is_mandatory":true,"title":"Access permissions"},"created":{"name":"created","type":"\t","is_mandatory":true,"title":"Creation timestamp"},"description":{"name":"description","type":"\u0007","is_mandatory":true,"title":"User-friendly description of this dataset"},"id":{"name":"id","type":"\u0007","is_mandatory":true,"title":"Dataset ID"},"kmsName":{"name":"kmsName","type":"\u0007","is_mandatory":true,"title":"Cloud KMS encryption key that will be used to protect BigQuery table"},"labels":{"name":"labels","type":"\u001a\u0007\u0007","is_mandatory":true,"title":"User-provided labels"},"location":{"name":"location","type":"\u0007","is_mandatory":true,"title":"Geo location of the dataset"},"models":{"name":"models","type":"\u0019\u001bgcp.project.bigqueryService.model","title":"Returns models in the Dataset"},"modified":{"name":"modified","type":"\t","is_mandatory":true,"title":"Modified timestamp"},"name":{"name":"name","type":"\u0007","is_mandatory":true,"title":"User-friendly name for this dataset"},"projectId":{"name":"projectId","type":"\u0007","is_mandatory":true,"title":"Project ID"},"routines":{"name":"routines","type":"\u0019\u001bgcp.project.bigqueryService.routine","title":"Returns routines in the Dataset"},"tables":{"name":"tables","type":"\u0019\u001bgcp.project.bigqueryService.table","title":"Returns tables in the Dataset"},"tags":{"name":"tags","type":"\u001a\u0007\u0007","is_mandatory":true,"title":"Tags associated with this dataset"}},"title":"GCP BigQuery dataset","private":true,"defaults":"name"},"gcp.project.bigqueryService.dataset.accessEntry":{"id":"gcp.project.bigqueryService.dataset.accessEntry","name":"gcp.project.bigqueryService.dataset.accessEntry","fields":{"datasetId":{"name":"datasetId","type":"\u0007","is_mandatory":true,"title":"Dataset ID"},"datasetRef":{"name":"datasetRef","type":"\n","is_mandatory":true,"title":"Resources within a dataset granted access"},"entity":{"name":"entity","type":"\u0007","is_mandatory":true,"title":"Entity (individual or group) granted access"},"entityType":{"name":"entityType","type":"\u0007","is_mandatory":true,"title":"Type of the entity"},"id":{"name":"id","type":"\u0007","is_mandatory":true,"title":"Internal ID"},"role":{"name":"role","type":"\u0007","is_mandatory":true,"title":"Role of the entity"},"routineRef":{"name":"routineRef","type":"\n","is_mandatory":true,"title":"Routine granted access (only UDF currently supported)"},"viewRef":{"name":"viewRef","type":"\n","is_mandatory":true,"title":"View granted access (entityType must be ViewEntity)"}},"title":"GCP BigQuery dataset access entry","private":true},"gcp.project.bigqueryService.model":{"id":"gcp.project.bigqueryService.model","name":"gcp.project.bigqueryService.model","fields":{"created":{"name":"created","type":"\t","is_mandatory":true,"title":"Creation timestamp"},"datasetId":{"name":"datasetId","type":"\u0007","is_mandatory":true,"title":"Dataset ID"},"description":{"name":"description","type":"\u0007","is_mandatory":true,"title":"User-friendly description of the model"},"expirationTime":{"name":"expirationTime","type":"\t","is_mandatory":true,"title":"Expiration time of the model"},"id":{"name":"id","type":"\u0007","is_mandatory":true,"title":"Model ID"},"kmsName":{"name":"kmsName","type":"\u0007","is_mandatory":true,"title":"Cloud KMS encryption key that will be used to protect BigQuery model"},"labels":{"name":"labels","type":"\u001a\u0007\u0007","is_mandatory":true,"title":"User-provided labels"},"location":{"name":"location","type":"\u0007","is_mandatory":true,"title":"Geographic location"},"modified":{"name":"modified","type":"\t","is_mandatory":true,"title":"Modified timestamp"},"name":{"name":"name","type":"\u0007","is_mandatory":true,"title":"User-friendly name of the model"},"projectId":{"name":"projectId","type":"\u0007","is_mandatory":true,"title":"Project ID"},"type":{"name":"type","type":"\u0007","is_mandatory":true,"title":"Type of the mode"}},"title":"GCP BigQuery ML model","private":true,"defaults":"id"},"gcp.project.bigqueryService.routine":{"id":"gcp.project.bigqueryService.routine","name":"gcp.project.bigqueryService.routine","fields":{"created":{"name":"created","type":"\t","is_mandatory":true,"title":"Creation timestamp"},"datasetId":{"name":"datasetId","type":"\u0007","is_mandatory":true,"title":"Dataset ID"},"description":{"name":"description","type":"\u0007","is_mandatory":true,"title":"User-friendly description of the routine"},"id":{"name":"id","type":"\u0007","is_mandatory":true,"title":"Routine ID"},"language":{"name":"language","type":"\u0007","is_mandatory":true,"title":"Language of the routine, such as SQL or JAVASCRIPT"},"modified":{"name":"modified","type":"\t","is_mandatory":true,"title":"Modified timestamp"},"projectId":{"name":"projectId","type":"\u0007","is_mandatory":true,"title":"Project ID"},"type":{"name":"type","type":"\u0007","is_mandatory":true,"title":"Type of routine"}},"title":"GCP BigQuery routine","private":true,"defaults":"id"},"gcp.project.bigqueryService.table":{"id":"gcp.project.bigqueryService.table","name":"gcp.project.bigqueryService.table","fields":{"clusteringFields":{"name":"clusteringFields","type":"\n","is_mandatory":true,"title":"Data clustering configuration"},"created":{"name":"created","type":"\t","is_mandatory":true,"title":"Creation timestamp"},"datasetId":{"name":"datasetId","type":"\u0007","is_mandatory":true,"title":"Dataset ID"},"description":{"name":"description","type":"\u0007","is_mandatory":true,"title":"User-friendly description of the table"},"expirationTime":{"name":"expirationTime","type":"\t","is_mandatory":true,"title":"Time when this table expires"},"externalDataConfig":{"name":"externalDataConfig","type":"\n","is_mandatory":true,"title":"Information about table stored outside of BigQuery."},"id":{"name":"id","type":"\u0007","is_mandatory":true,"title":"Table ID"},"kmsName":{"name":"kmsName","type":"\u0007","is_mandatory":true,"title":"Cloud KMS encryption key that will be used to protect BigQuery table"},"labels":{"name":"labels","type":"\u001a\u0007\u0007","is_mandatory":true,"title":"User-provided labels"},"location":{"name":"location","type":"\u0007","is_mandatory":true,"title":"Location of the table"},"materializedView":{"name":"materializedView","type":"\n","is_mandatory":true,"title":"Information for materialized views"},"modified":{"name":"modified","type":"\t","is_mandatory":true,"title":"Modified timestamp"},"name":{"name":"name","type":"\u0007","is_mandatory":true,"title":"The user-friendly name for the table"},"numBytes":{"name":"numBytes","type":"\u0005","is_mandatory":true,"title":"Size of the table in bytes"},"numLongTermBytes":{"name":"numLongTermBytes","type":"\u0005","is_mandatory":true,"title":"Number of bytes in the table considered \"long-term storage\" for reduced billing purposes"},"numRows":{"name":"numRows","type":"\u0005","is_mandatory":true,"title":"Number of rows of data in this table"},"projectId":{"name":"projectId","type":"\u0007","is_mandatory":true,"title":"Project ID"},"rangePartitioning":{"name":"rangePartitioning","type":"\n","is_mandatory":true,"title":"Integer-range-based partitioning on a table"},"requirePartitionFilter":{"name":"requirePartitionFilter","type":"\u0004","is_mandatory":true,"title":"Indicates if queries that reference this table must specify a partition filter"},"schema":{"name":"schema","type":"\u0019\n","is_mandatory":true,"title":"Table schema"},"snapshotTime":{"name":"snapshotTime","type":"\t","is_mandatory":true,"title":"Indicates when the base table was snapshot"},"timePartitioning":{"name":"timePartitioning","type":"\n","is_mandatory":true,"title":"Time-based date partitioning on a table"},"type":{"name":"type","type":"\u0007","is_mandatory":true,"title":"Table Type"},"useLegacySQL":{"name":"useLegacySQL","type":"\u0004","is_mandatory":true,"title":"Indicates if Legacy SQL is used for the view query"},"viewQuery":{"name":"viewQuery","type":"\u0007","is_mandatory":true,"title":"Query to use for a logical view"}},"title":"GCP BigQuery table","private":true,"defaults":"id"},"gcp.project.cloudFunction":{"id":"gcp.project.cloudFunction","name":"gcp.project.cloudFunction","fields":{"availableMemoryMb":{"name":"availableMemoryMb","type":"\u0005","is_mandatory":true,"title":"Amount of memory in MB available for a function"},"buildEnvVars":{"name":"buildEnvVars","type":"\u001a\u0007\u0007","is_mandatory":true,"title":"Build environment variables that are available during build time"},"buildId":{"name":"buildId","type":"\u0007","is_mandatory":true,"title":"Cloud Build ID of the latest successful deployment of the function"},"buildName":{"name":"buildName","type":"\u0007","is_mandatory":true,"title":"Cloud Build name of the function deployment"},"buildWorkerPool":{"name":"buildWorkerPool","type":"\u0007","is_mandatory":true,"title":"Name of the Cloud Build custom WorkerPool that should be used to build the function"},"description":{"name":"description","type":"\u0007","is_mandatory":true,"title":"Cloud Function description"},"dockerRegistry":{"name":"dockerRegistry","type":"\u0007","is_mandatory":true,"title":"Docker registry to use for this deployment"},"dockerRepository":{"name":"dockerRepository","type":"\u0007","is_mandatory":true,"title":"User-managed repository created in Artifact Registry"},"egressSettings":{"name":"egressSettings","type":"\u0007","is_mandatory":true,"title":"Egress settings for the connector controlling what traffic is diverted"},"entryPoint":{"name":"entryPoint","type":"\u0007","is_mandatory":true,"title":"Name of the function (as defined in source code) that is executed"},"envVars":{"name":"envVars","type":"\u001a\u0007\u0007","is_mandatory":true,"title":"Environment variables that are available during function execution"},"eventTrigger":{"name":"eventTrigger","type":"\n","is_mandatory":true,"title":"Source that fires events in response to a condition in another service"},"httpsTrigger":{"name":"httpsTrigger","type":"\n","is_mandatory":true,"title":"HTTPS endpoint of source that can be triggered via URL"},"ingressSettings":{"name":"ingressSettings","type":"\u0007","is_mandatory":true,"title":"Ingress settings for the function controlling what traffic can reach"},"kmsKeyName":{"name":"kmsKeyName","type":"\u0007","is_mandatory":true,"title":"Resource name of a KMS crypto key used to encrypt/decrypt function resources"},"labels":{"name":"labels","type":"\u001a\u0007\u0007","is_mandatory":true,"title":"Labels associated with this cloud function"},"maxInstances":{"name":"maxInstances","type":"\u0005","is_mandatory":true,"title":"Maximum number of function instances that may coexist at a given time"},"minInstances":{"name":"minInstances","type":"\u0005","is_mandatory":true,"title":"Lower bound for the number of function instances that may coexist at a given time"},"name":{"name":"name","type":"\u0007","is_mandatory":true,"title":"Cloud Function name"},"network":{"name":"network","type":"\u0007","is_mandatory":true,"title":"VPC network that this cloud function can connect to"},"projectId":{"name":"projectId","type":"\u0007","is_mandatory":true,"title":"Project ID"},"runtime":{"name":"runtime","type":"\u0007","is_mandatory":true,"title":"Runtime in which to run the function"},"secretEnvVars":{"name":"secretEnvVars","type":"\u001a\u0007\n","is_mandatory":true,"title":"Secret environment variables"},"secretVolumes":{"name":"secretVolumes","type":"\u0019\n","is_mandatory":true,"title":"Secret volumes"},"serviceAccountEmail":{"name":"serviceAccountEmail","type":"\u0007","is_mandatory":true,"title":"Email of the function's service account"},"sourceArchiveUrl":{"name":"sourceArchiveUrl","type":"\u0007","is_mandatory":true,"title":"Location of the archive with the function's source code"},"sourceRepository":{"name":"sourceRepository","type":"\n","is_mandatory":true,"title":"Repository reference for the function's source code"},"sourceUploadUrl":{"name":"sourceUploadUrl","type":"\u0007","is_mandatory":true,"title":"Location of the upload with the function's source code"},"status":{"name":"status","type":"\u0007","is_mandatory":true,"title":"Status of the function deployment"},"timeout":{"name":"timeout","type":"\t","is_mandatory":true,"title":"Function execution timeout"},"updated":{"name":"updated","type":"\t","is_mandatory":true,"title":"Update timestamp"},"versionId":{"name":"versionId","type":"\u0005","is_mandatory":true,"title":"Version identifier of the cloud function"},"vpcConnector":{"name":"vpcConnector","type":"\u0007","is_mandatory":true,"title":"VPC network connector that this cloud function can connect to"}},"title":"GCP Cloud Function","private":true},"gcp.project.cloudRunService":{"id":"gcp.project.cloudRunService","name":"gcp.project.cloudRunService","fields":{"jobs":{"name":"jobs","type":"\u0019\u001bgcp.project.cloudRunService.job","title":"List of jobs"},"operations":{"name":"operations","type":"\u0019\u001bgcp.project.cloudRunService.operation","title":"List of operations"},"projectId":{"name":"projectId","type":"\u0007","is_mandatory":true,"title":"Project ID"},"regions":{"name":"regions","type":"\u0019\u0007","title":"List of available regions"},"services":{"name":"services","type":"\u0019\u001bgcp.project.cloudRunService.service","title":"List of services"}},"title":"GCP Cloud Run resources","private":true},"gcp.project.cloudRunService.condition":{"id":"gcp.project.cloudRunService.condition","name":"gcp.project.cloudRunService.condition","fields":{"id":{"name":"id","type":"\u0007","is_mandatory":true,"title":"Internal ID"},"lastTransitionTime":{"name":"lastTransitionTime","type":"\t","is_mandatory":true,"title":"Last time the condition transitioned from one status to another"},"message":{"name":"message","type":"\u0007","is_mandatory":true,"title":"Human-readable message indicating details about the current status"},"severity":{"name":"severity","type":"\u0007","is_mandatory":true,"title":"How to interpret failures of this condition"},"state":{"name":"state","type":"\u0007","is_mandatory":true,"title":"Condition state"},"type":{"name":"type","type":"\u0007","is_mandatory":true,"title":"Status of the reconciliation process"}},"title":"GCP Cloud Run condition","private":true,"defaults":"type state message"},"gcp.project.cloudRunService.container":{"id":"gcp.project.cloudRunService.container","name":"gcp.project.cloudRunService.container","fields":{"args":{"name":"args","type":"\u0019\u0007","is_mandatory":true,"title":"Arguments to the entrypoint"},"command":{"name":"command","type":"\u0019\u0007","is_mandatory":true,"title":"Entrypoint array"},"env":{"name":"env","type":"\u0019\n","is_mandatory":true,"title":"Environment variables"},"id":{"name":"id","type":"\u0007","is_mandatory":true,"title":"Internal ID"},"image":{"name":"image","type":"\u0007","is_mandatory":true,"title":"URL of the container image in Google Container Registry or Google Artifact Registry"},"livenessProbe":{"name":"livenessProbe","type":"\u001bgcp.project.cloudRunService.container.probe","is_mandatory":true,"title":"Periodic probe of container liveness"},"name":{"name":"name","type":"\u0007","is_mandatory":true,"title":"Container name"},"ports":{"name":"ports","type":"\u0019\n","is_mandatory":true,"title":"List of ports to expose from the container"},"resources":{"name":"resources","type":"\n","is_mandatory":true,"title":"Compute resource requirements by the container"},"startupProbe":{"name":"startupProbe","type":"\u001bgcp.project.cloudRunService.container.probe","is_mandatory":true,"title":"Startup probe of application within the container"},"volumeMounts":{"name":"volumeMounts","type":"\u0019\n","is_mandatory":true,"title":"Volumes to mount into the container's filesystem"},"workingDir":{"name":"workingDir","type":"\u0007","is_mandatory":true,"title":"Container's working directory"}},"title":"GCP Cloud Run service revision template container","private":true,"defaults":"name image"},"gcp.project.cloudRunService.container.probe":{"id":"gcp.project.cloudRunService.container.probe","name":"gcp.project.cloudRunService.container.probe","fields":{"failureThreshold":{"name":"failureThreshold","type":"\u0005","is_mandatory":true,"title":"Minimum consecutive successes for the probe to be considered failed"},"httpGet":{"name":"httpGet","type":"\n","is_mandatory":true,"title":"HTTP GET probe configuration"},"id":{"name":"id","type":"\u0007","is_mandatory":true,"title":"Internal ID"},"initialDelaySeconds":{"name":"initialDelaySeconds","type":"\u0005","is_mandatory":true,"title":"Number of seconds after the container has started before the probe is initiated"},"periodSeconds":{"name":"periodSeconds","type":"\u0005","is_mandatory":true,"title":"Number of seconds indicating how often to perform the probe"},"tcpSocket":{"name":"tcpSocket","type":"\n","is_mandatory":true,"title":"TCP socket probe configuration"},"timeoutSeconds":{"name":"timeoutSeconds","type":"\u0005","is_mandatory":true,"title":"Number of seconds after which the probe times out"}},"title":"GCP Cloud Run service revision template container probe","private":true},"gcp.project.cloudRunService.job":{"id":"gcp.project.cloudRunService.job","name":"gcp.project.cloudRunService.job","fields":{"annotations":{"name":"annotations","type":"\u001a\u0007\u0007","is_mandatory":true,"title":"Unstructured key-value map that may be set by external tools to store an arbitrary metadata"},"client":{"name":"client","type":"\u0007","is_mandatory":true,"title":"Arbitrary identifier for the API client"},"clientVersion":{"name":"clientVersion","type":"\u0007","is_mandatory":true,"title":"Arbitrary version identifier for the API client"},"conditions":{"name":"conditions","type":"\u0019\u001bgcp.project.cloudRunService.condition","is_mandatory":true,"title":"Conditions of all other associated sub-resources"},"created":{"name":"created","type":"\t","is_mandatory":true,"title":"Creation timestamp"},"creator":{"name":"creator","type":"\u0007","is_mandatory":true,"title":"Email address of the authenticated creator"},"deleted":{"name":"deleted","type":"\t","is_mandatory":true,"title":"Deletion timestamp"},"executionCount":{"name":"executionCount","type":"\u0005","is_mandatory":true,"title":"Number of executions created for this job"},"expired":{"name":"expired","type":"\t","is_mandatory":true,"title":"Timestamp after which a deleted service will be permanently deleted"},"generation":{"name":"generation","type":"\u0005","is_mandatory":true,"title":"Number that monotonically increases every time the user modifies the desired state"},"id":{"name":"id","type":"\u0007","is_mandatory":true,"title":"Job identifier"},"labels":{"name":"labels","type":"\u001a\u0007\u0007","is_mandatory":true,"title":"User-defined labels"},"lastModifier":{"name":"lastModifier","type":"\u0007","is_mandatory":true,"title":"Email address of the last authenticated modifier"},"launchStage":{"name":"launchStage","type":"\u0007","is_mandatory":true,"title":"Launch stage"},"name":{"name":"name","type":"\u0007","is_mandatory":true,"title":"Job name"},"observedGeneration":{"name":"observedGeneration","type":"\u0005","is_mandatory":true,"title":"Generation of this service currently serving traffic"},"projectId":{"name":"projectId","type":"\u0007","is_mandatory":true,"title":"Project ID"},"reconciling":{"name":"reconciling","type":"\u0004","is_mandatory":true,"title":"Whether the service is currently being acted upon by the system to bring it into the desired state"},"region":{"name":"region","type":"\u0007","is_mandatory":true,"title":"Region"},"template":{"name":"template","type":"\u001bgcp.project.cloudRunService.job.executionTemplate","is_mandatory":true,"title":"Template used to create executions for this job"},"terminalCondition":{"name":"terminalCondition","type":"\u001bgcp.project.cloudRunService.condition","is_mandatory":true,"title":"Conditions of this service, containing its readiness status and detailed error information in case it did not reach a serving state"},"updated":{"name":"updated","type":"\t","is_mandatory":true,"title":"Update timestamp"}},"title":"GCP Cloud Run job","private":true},"gcp.project.cloudRunService.job.executionTemplate":{"id":"gcp.project.cloudRunService.job.executionTemplate","name":"gcp.project.cloudRunService.job.executionTemplate","fields":{"annotations":{"name":"annotations","type":"\u001a\u0007\u0007","is_mandatory":true,"title":"Unstructured key-value map that may be set by external tools to store an arbitrary metadata"},"id":{"name":"id","type":"\u0007","is_mandatory":true,"title":"Internal ID"},"labels":{"name":"labels","type":"\u001a\u0007\u0007","is_mandatory":true,"title":"User-defined labels"},"parallelism":{"name":"parallelism","type":"\u0005","is_mandatory":true,"title":"Specifies the maximum desired number of tasks the execution should run at a given time"},"taskCount":{"name":"taskCount","type":"\u0005","is_mandatory":true,"title":"Specifies the desired number of tasks the execution should run"},"template":{"name":"template","type":"\u001bgcp.project.cloudRunService.job.executionTemplate.taskTemplate","is_mandatory":true,"title":"Describes the task that will be create when executing an execution"}},"title":"GCP Cloud Run job execution template","private":true},"gcp.project.cloudRunService.job.executionTemplate.taskTemplate":{"id":"gcp.project.cloudRunService.job.executionTemplate.taskTemplate","name":"gcp.project.cloudRunService.job.executionTemplate.taskTemplate","fields":{"containers":{"name":"containers","type":"\u0019\u001bgcp.project.cloudRunService.container","is_mandatory":true,"title":"Containers for this revision"},"encryptionKey":{"name":"encryptionKey","type":"\u0007","is_mandatory":true,"title":"Reference to a customer-managed encryption key to use to encrypt this container image"},"executionEnvironment":{"name":"executionEnvironment","type":"\u0007","is_mandatory":true,"title":"Sandbox environment to host the revision"},"id":{"name":"id","type":"\u0007","is_mandatory":true,"title":"Internal ID"},"maxRetries":{"name":"maxRetries","type":"\u0005","is_mandatory":true,"title":"Number of retries allowed per task"},"serviceAccount":{"name":"serviceAccount","type":"\u0007","is_mandatory":true,"title":"Email address of the IAM service account associated with the revision of the service"},"timeout":{"name":"timeout","type":"\t","is_mandatory":true,"title":"Maximum allowed time for an instance to respond to a request"},"volumes":{"name":"volumes","type":"\u0019\n","is_mandatory":true,"title":"List of volumes to make available to containers"},"vpcAccess":{"name":"vpcAccess","type":"\n","is_mandatory":true,"title":"VPC access configuration"}},"title":"GCP Cloud Run job execution template task template","private":true},"gcp.project.cloudRunService.operation":{"id":"gcp.project.cloudRunService.operation","name":"gcp.project.cloudRunService.operation","fields":{"done":{"name":"done","type":"\u0004","is_mandatory":true,"title":"Whether the operation is completed"},"name":{"name":"name","type":"\u0007","is_mandatory":true,"title":"Operation name"},"projectId":{"name":"projectId","type":"\u0007","is_mandatory":true,"title":"Project ID"}},"title":"GCP Cloud Run operation","private":true,"defaults":"name"},"gcp.project.cloudRunService.service":{"id":"gcp.project.cloudRunService.service","name":"gcp.project.cloudRunService.service","fields":{"annotations":{"name":"annotations","type":"\u001a\u0007\u0007","is_mandatory":true,"title":"Unstructured key-value map that may be set by external tools to store an arbitrary metadata"},"conditions":{"name":"conditions","type":"\u0019\u001bgcp.project.cloudRunService.condition","is_mandatory":true,"title":"Conditions of all other associated sub-resources"},"created":{"name":"created","type":"\t","is_mandatory":true,"title":"Creation timestamp"},"creator":{"name":"creator","type":"\u0007","is_mandatory":true,"title":"Email address of the authenticated creator"},"deleted":{"name":"deleted","type":"\t","is_mandatory":true,"title":"Deletion timestamp"},"description":{"name":"description","type":"\u0007","is_mandatory":true,"title":"Service description"},"expired":{"name":"expired","type":"\t","is_mandatory":true,"title":"Timestamp after which a deleted service will be permanently deleted"},"generation":{"name":"generation","type":"\u0005","is_mandatory":true,"title":"Number that monotonically increases every time the user modifies the desired state"},"id":{"name":"id","type":"\u0007","is_mandatory":true,"title":"Service identifier"},"ingress":{"name":"ingress","type":"\u0007","is_mandatory":true,"title":"Ingress settings"},"labels":{"name":"labels","type":"\u001a\u0007\u0007","is_mandatory":true,"title":"User-provided labels"},"lastModifier":{"name":"lastModifier","type":"\u0007","is_mandatory":true,"title":"Email address of the last authenticated modifier"},"latestCreatedRevision":{"name":"latestCreatedRevision","type":"\u0007","is_mandatory":true,"title":"Name of the last created revision"},"latestReadyRevision":{"name":"latestReadyRevision","type":"\u0007","is_mandatory":true,"title":"Name of the latest revision that is serving traffic"},"launchStage":{"name":"launchStage","type":"\u0007","is_mandatory":true,"title":"Launch stage"},"name":{"name":"name","type":"\u0007","is_mandatory":true,"title":"Service name"},"observedGeneration":{"name":"observedGeneration","type":"\u0005","is_mandatory":true,"title":"Generation of this service currently serving traffic"},"projectId":{"name":"projectId","type":"\u0007","is_mandatory":true,"title":"Project ID"},"reconciling":{"name":"reconciling","type":"\u0004","is_mandatory":true,"title":"Whether the service is currently being acted upon by the system to bring it into the desired state"},"region":{"name":"region","type":"\u0007","is_mandatory":true,"title":"Region"},"template":{"name":"template","type":"\u001bgcp.project.cloudRunService.service.revisionTemplate","is_mandatory":true,"title":"Template used to create revisions for the service"},"terminalCondition":{"name":"terminalCondition","type":"\u001bgcp.project.cloudRunService.condition","is_mandatory":true,"title":"Conditions of this service, containing its readiness status and detailed error information in case it did not reach a serving state"},"traffic":{"name":"traffic","type":"\u0019\n","is_mandatory":true,"title":"Specifies how to distribute traffic over a collection of revisions belonging to the service"},"trafficStatuses":{"name":"trafficStatuses","type":"\u0019\n","is_mandatory":true,"title":"Detailed status information for corresponding traffic targets"},"updated":{"name":"updated","type":"\t","is_mandatory":true,"title":"Update timestamp"},"uri":{"name":"uri","type":"\u0007","is_mandatory":true,"title":"Main URI in which this service is serving traffic"}},"title":"GCP Cloud Run service","private":true,"defaults":"name"},"gcp.project.cloudRunService.service.revisionTemplate":{"id":"gcp.project.cloudRunService.service.revisionTemplate","name":"gcp.project.cloudRunService.service.revisionTemplate","fields":{"annotations":{"name":"annotations","type":"\u001a\u0007\u0007","is_mandatory":true,"title":"Unstructured key-value map that may be set by external tools to store an arbitrary metadata"},"containers":{"name":"containers","type":"\u0019\u001bgcp.project.cloudRunService.container","is_mandatory":true,"title":"Containers for this revision"},"encryptionKey":{"name":"encryptionKey","type":"\u0007","is_mandatory":true,"title":"Reference to a customer-managed encryption key to use to encrypt this container image"},"executionEnvironment":{"name":"executionEnvironment","type":"\u0007","is_mandatory":true,"title":"Sandbox environment to host the revision"},"id":{"name":"id","type":"\u0007","is_mandatory":true,"title":"Internal ID"},"labels":{"name":"labels","type":"\u001a\u0007\u0007","is_mandatory":true,"title":"User-provided labels"},"maxInstanceRequestConcurrency":{"name":"maxInstanceRequestConcurrency","type":"\u0005","is_mandatory":true,"title":"Maximum number of requests that each serving instance can receive"},"name":{"name":"name","type":"\u0007","is_mandatory":true,"title":"Revision name"},"scaling":{"name":"scaling","type":"\n","is_mandatory":true,"title":"Scaling settings"},"serviceAccount":{"name":"serviceAccount","type":"\u0007","is_mandatory":true,"title":"Email address of the IAM service account associated with the revision of the service"},"timeout":{"name":"timeout","type":"\t","is_mandatory":true,"title":"Maximum allowed time for an instance to respond to a request"},"volumes":{"name":"volumes","type":"\u0019\n","is_mandatory":true,"title":"List of volumes to make available to containers"},"vpcAccess":{"name":"vpcAccess","type":"\n","is_mandatory":true,"title":"VPC access configuration"}},"title":"GCP Cloud Run service revision template","private":true,"defaults":"name"},"gcp.project.computeService":{"id":"gcp.project.computeService","name":"gcp.project.computeService","fields":{"backendServices":{"name":"backendServices","type":"\u0019\u001bgcp.project.computeService.backendService","title":"List of backend services"},"disks":{"name":"disks","type":"\u0019\u001bgcp.project.computeService.disk","title":"Google Compute Engine disks in a project"},"firewalls":{"name":"firewalls","type":"\u0019\u001bgcp.project.computeService.firewall","title":"Google Compute Engine firewalls in a project"},"images":{"name":"images","type":"\u0019\u001bgcp.project.computeService.image","title":"Google Compute Engine images in a project"},"instances":{"name":"instances","type":"\u0019\u001bgcp.project.computeService.instance","title":"Google Compute Engine instances in a project"},"machineTypes":{"name":"machineTypes","type":"\u0019\u001bgcp.project.computeService.machineType","title":"Google Compute Engine machine types in a project"},"networks":{"name":"networks","type":"\u0019\u001bgcp.project.computeService.network","title":"Google Compute Engine VPC Network in a project"},"projectId":{"name":"projectId","type":"\u0007","is_mandatory":true,"title":"Project ID"},"regions":{"name":"regions","type":"\u0019\u001bgcp.project.computeService.region","title":"Project Regions"},"routers":{"name":"routers","type":"\u0019\u001bgcp.project.computeService.router","title":"Cloud Routers in project"},"snapshots":{"name":"snapshots","type":"\u0019\u001bgcp.project.computeService.snapshot","title":"Google Compute Engine snapshots in a project"},"subnetworks":{"name":"subnetworks","type":"\u0019\u001bgcp.project.computeService.subnetwork","title":"Logical partition of a Virtual Private Cloud network"},"zones":{"name":"zones","type":"\u0019\u001bgcp.project.computeService.zone","title":"Project Zones"}},"title":"GCP Compute Engine","private":true},"gcp.project.computeService.attachedDisk":{"id":"gcp.project.computeService.attachedDisk","name":"gcp.project.computeService.attachedDisk","fields":{"architecture":{"name":"architecture","type":"\u0007","is_mandatory":true,"title":"Architecture of the attached disk"},"autoDelete":{"name":"autoDelete","type":"\u0004","is_mandatory":true,"title":"Indicates if disk will be auto-deleted"},"boot":{"name":"boot","type":"\u0004","is_mandatory":true,"title":"Indicates that this is a boot disk"},"deviceName":{"name":"deviceName","type":"\u0007","is_mandatory":true,"title":"Unique device name"},"diskSizeGb":{"name":"diskSizeGb","type":"\u0005","is_mandatory":true,"title":"Size of the disk in GB"},"forceAttach":{"name":"forceAttach","type":"\u0004","is_mandatory":true,"title":"Indicates whether to force attach the regional disk"},"guestOsFeatures":{"name":"guestOsFeatures","type":"\u0019\u0007","is_mandatory":true,"title":"Features to enable on the guest operating"},"id":{"name":"id","type":"\u0007","is_mandatory":true,"title":"Attached Disk ID"},"index":{"name":"index","type":"\u0005","is_mandatory":true,"title":"Index to this disk"},"interface":{"name":"interface","type":"\u0007","is_mandatory":true,"title":"Disk interface"},"licenses":{"name":"licenses","type":"\u0019\u0007","is_mandatory":true,"title":"Publicly visible licenses"},"mode":{"name":"mode","type":"\u0007","is_mandatory":true,"title":"Mode in which to the disk is attached"},"projectId":{"name":"projectId","type":"\u0007","is_mandatory":true,"title":"Project ID"},"source":{"name":"source","type":"\u001bgcp.project.computeService.disk","title":"Attached Persistent Disk resource"},"type":{"name":"type","type":"\u0007","is_mandatory":true,"title":"Disk Type"}},"title":"GCP Compute Attached Disk","private":true},"gcp.project.computeService.backendService":{"id":"gcp.project.computeService.backendService","name":"gcp.project.computeService.backendService","fields":{"affinityCookieTtlSec":{"name":"affinityCookieTtlSec","type":"\u0005","is_mandatory":true,"title":"Lifetime of cookies in seconds"},"backends":{"name":"backends","type":"\u0019\u001bgcp.project.computeService.backendService.backend","is_mandatory":true,"title":"List of backends that serve this backend service"},"cdnPolicy":{"name":"cdnPolicy","type":"\u001bgcp.project.computeService.backendService.cdnPolicy","is_mandatory":true,"title":"Cloud CDN configuration"},"circuitBreakers":{"name":"circuitBreakers","type":"\n","is_mandatory":true,"title":"Circuit breakers"},"compressionMode":{"name":"compressionMode","type":"\u0007","is_mandatory":true,"title":"Compress text responses using Brotli or gzip compression, based on the client's Accept-Encoding header"},"connectionDraining":{"name":"connectionDraining","type":"\n","is_mandatory":true,"title":"Connection draining configuration"},"connectionTrackingPolicy":{"name":"connectionTrackingPolicy","type":"\n","is_mandatory":true,"title":"Connection tracking configuration"},"consistentHash":{"name":"consistentHash","type":"\n","is_mandatory":true,"title":"Consistent hash-based load balancing used to provide soft session affinity based on HTTP headers, cookies or other properties"},"created":{"name":"created","type":"\t","is_mandatory":true,"title":"Creation timestamp"},"customRequestHeaders":{"name":"customRequestHeaders","type":"\u0019\u0007","is_mandatory":true,"title":"Headers that the load balancer adds to proxied requests"},"customResponseHeaders":{"name":"customResponseHeaders","type":"\u0019\u0007","is_mandatory":true,"title":"Headers that the load balancer adds to proxied responses"},"description":{"name":"description","type":"\u0007","is_mandatory":true,"title":"Backend service description"},"edgeSecurityPolicy":{"name":"edgeSecurityPolicy","type":"\u0007","is_mandatory":true,"title":"Resource URL for the edge security policy associated with this backend service"},"enableCDN":{"name":"enableCDN","type":"\u0004","is_mandatory":true,"title":"Whether to enable Cloud CDN"},"failoverPolicy":{"name":"failoverPolicy","type":"\n","is_mandatory":true,"title":"Failover policy"},"healthChecks":{"name":"healthChecks","type":"\u0019\u0007","is_mandatory":true,"title":"List of URLs to the health checks"},"iap":{"name":"iap","type":"\n","is_mandatory":true,"title":"Identity-aware proxy configuration"},"id":{"name":"id","type":"\u0007","is_mandatory":true,"title":"Unique identifier"},"loadBalancingScheme":{"name":"loadBalancingScheme","type":"\u0007","is_mandatory":true,"title":"Load balancer type"},"localityLbPolicies":{"name":"localityLbPolicies","type":"\u0019\n","is_mandatory":true,"title":"List of locality load balancing policies to be used in order of preference"},"localityLbPolicy":{"name":"localityLbPolicy","type":"\u0007","is_mandatory":true,"title":"Load balancing algorithm used within the scope of the locality"},"logConfig":{"name":"logConfig","type":"\n","is_mandatory":true,"title":"Log configuration"},"maxStreamDuration":{"name":"maxStreamDuration","type":"\t","is_mandatory":true,"title":"Default maximum duration (timeout) for streams to this service"},"name":{"name":"name","type":"\u0007","is_mandatory":true,"title":"Backend service name"},"networkUrl":{"name":"networkUrl","type":"\u0007","is_mandatory":true,"title":"URL to the network to which this backend service belongs"},"portName":{"name":"portName","type":"\u0007","is_mandatory":true,"title":"Named port on a backend instance group representing the port for communication to the backend VMs in that group"},"protocol":{"name":"protocol","type":"\u0007","is_mandatory":true,"title":"Protocol used for communication"},"regionUrl":{"name":"regionUrl","type":"\u0007","is_mandatory":true,"title":"Region URL"},"securityPolicyUrl":{"name":"securityPolicyUrl","type":"\u0007","is_mandatory":true,"title":"Security policy URL"},"securitySettings":{"name":"securitySettings","type":"\n","is_mandatory":true,"title":"Security settings"},"serviceBindingUrls":{"name":"serviceBindingUrls","type":"\u0019\u0007","is_mandatory":true,"title":"Service binding URLs"},"sessionAffinity":{"name":"sessionAffinity","type":"\u0007","is_mandatory":true,"title":"Session affinity type"},"timeoutSec":{"name":"timeoutSec","type":"\u0005","is_mandatory":true,"title":"Backend service timeout in settings"}},"title":"GCP Compute backend service","private":true,"defaults":"name"},"gcp.project.computeService.backendService.backend":{"id":"gcp.project.computeService.backendService.backend","name":"gcp.project.computeService.backendService.backend","fields":{"balancingMode":{"name":"balancingMode","type":"\u0007","is_mandatory":true,"title":"How to determine whether the backend of a load balancer can handle additional traffic or is fully loaded"},"capacityScaler":{"name":"capacityScaler","type":"\u0006","is_mandatory":true,"title":"Multiplier applied to the backend's target capacity of its balancing mode"},"description":{"name":"description","type":"\u0007","is_mandatory":true,"title":"Backend description"},"failover":{"name":"failover","type":"\u0004","is_mandatory":true,"title":"Whether this is a failover backend"},"groupUrl":{"name":"groupUrl","type":"\u0007","is_mandatory":true,"title":"Fully-qualified URL of an instance group or network endpoint group determining what types of backends a load balancer supports"},"id":{"name":"id","type":"\u0007","is_mandatory":true,"title":"Internal ID"},"maxConnections":{"name":"maxConnections","type":"\u0005","is_mandatory":true,"title":"Maximum number of simultaneous connections"},"maxConnectionsPerEndpoint":{"name":"maxConnectionsPerEndpoint","type":"\u0005","is_mandatory":true,"title":"Maximum number of simultaneous connections per endpoint"},"maxConnectionsPerInstance":{"name":"maxConnectionsPerInstance","type":"\u0005","is_mandatory":true,"title":"Maximum number of simultaneous connections per instance"},"maxRate":{"name":"maxRate","type":"\u0005","is_mandatory":true,"title":"Maximum number of HTTP requests per second"},"maxRatePerEndpoint":{"name":"maxRatePerEndpoint","type":"\u0006","is_mandatory":true,"title":"Maximum number for requests per second per endpoint"},"maxRatePerInstance":{"name":"maxRatePerInstance","type":"\u0006","is_mandatory":true,"title":"Maximum number for requests per second per instance"},"maxUtilization":{"name":"maxUtilization","type":"\u0006","is_mandatory":true,"title":"Target capacity for the utilization balancing mode"}},"title":"GCP Compute backend service backend","private":true,"defaults":"description"},"gcp.project.computeService.backendService.cdnPolicy":{"id":"gcp.project.computeService.backendService.cdnPolicy","name":"gcp.project.computeService.backendService.cdnPolicy","fields":{"bypassCacheOnRequestHeaders":{"name":"bypassCacheOnRequestHeaders","type":"\u0019\n","is_mandatory":true,"title":"Bypass the cache when the specified request headers are matched"},"cacheKeyPolicy":{"name":"cacheKeyPolicy","type":"\n","is_mandatory":true,"title":"Cache key policy"},"cacheMode":{"name":"cacheMode","type":"\u0007","is_mandatory":true,"title":"Cache mode for all responses from this backend"},"clientTtl":{"name":"clientTtl","type":"\u0005","is_mandatory":true,"title":"Client maximum TTL"},"defaultTtl":{"name":"defaultTtl","type":"\u0005","is_mandatory":true,"title":"Default TTL for cached content"},"id":{"name":"id","type":"\u0007","is_mandatory":true,"title":"Internal ID"},"maxTtl":{"name":"maxTtl","type":"\u0005","is_mandatory":true,"title":"Maximum allowed TTL for cached content"},"negativeCaching":{"name":"negativeCaching","type":"\u0004","is_mandatory":true,"title":"Negative caching allows per-status code TTLs to be set, in order to apply fine-grained caching for common errors or redirects"},"negativeCachingPolicy":{"name":"negativeCachingPolicy","type":"\u0019\n","is_mandatory":true,"title":"Negative caching policy"},"requestCoalescing":{"name":"requestCoalescing","type":"\u0004","is_mandatory":true,"title":"Whether Cloud CDN will combine multiple concurrent cache fill requests into a small number of requests to the origin"},"serveWhileStale":{"name":"serveWhileStale","type":"\u0005","is_mandatory":true,"title":"Serve existing content from the cache when revalidating content with the origin"},"signedUrlCacheMaxAgeSec":{"name":"signedUrlCacheMaxAgeSec","type":"\u0005","is_mandatory":true,"title":"Maximum number of seconds the response to a signed URL request will be considered fresh"},"signedUrlKeyNames":{"name":"signedUrlKeyNames","type":"\u0019\u0007","is_mandatory":true,"title":"Names of the keys for signing request URLs"}},"title":"GCP Compute backend service CDN policy","private":true},"gcp.project.computeService.disk":{"id":"gcp.project.computeService.disk","name":"gcp.project.computeService.disk","fields":{"architecture":{"name":"architecture","type":"\u0007","is_mandatory":true,"title":"The architecture of the disk"},"created":{"name":"created","type":"\t","is_mandatory":true,"title":"Creation timestamp"},"description":{"name":"description","type":"\u0007","is_mandatory":true,"title":"Optional description"},"diskEncryptionKey":{"name":"diskEncryptionKey","type":"\n","is_mandatory":true,"title":"Disk encryption key"},"guestOsFeatures":{"name":"guestOsFeatures","type":"\u0019\u0007","is_mandatory":true,"title":"Features to enable on the guest operating"},"id":{"name":"id","type":"\u0007","is_mandatory":true,"title":"Unique identifier for the resource"},"labels":{"name":"labels","type":"\u001a\u0007\u0007","is_mandatory":true,"title":"Labels to apply to this disk"},"lastAttachTimestamp":{"name":"lastAttachTimestamp","type":"\t","is_mandatory":true,"title":"Last attach timestamp"},"lastDetachTimestamp":{"name":"lastDetachTimestamp","type":"\t","is_mandatory":true,"title":"Last detach timestamp"},"licenses":{"name":"licenses","type":"\u0019\u0007","is_mandatory":true,"title":"Publicly visible licenses"},"locationHint":{"name":"locationHint","type":"\u0007","is_mandatory":true,"title":"An opaque location hint"},"name":{"name":"name","type":"\u0007","is_mandatory":true,"title":"User-friendly name for this disk"},"physicalBlockSizeBytes":{"name":"physicalBlockSizeBytes","type":"\u0005","is_mandatory":true,"title":"Physical block size of the persistent disk"},"provisionedIops":{"name":"provisionedIops","type":"\u0005","is_mandatory":true,"title":"Indicates how many IOPS to provision for the disk"},"sizeGb":{"name":"sizeGb","type":"\u0005","is_mandatory":true,"title":"Size, in GB, of the persistent disk"},"status":{"name":"status","type":"\u0007","is_mandatory":true,"title":"The status of disk creation"},"zone":{"name":"zone","type":"\u001bgcp.project.computeService.zone","is_mandatory":true,"title":"Disk Zone"}},"title":"GCP Compute Persistent Disk","private":true,"defaults":"name"},"gcp.project.computeService.firewall":{"id":"gcp.project.computeService.firewall","name":"gcp.project.computeService.firewall","fields":{"allowed":{"name":"allowed","type":"\u0019\n","is_mandatory":true,"title":"List of ALLOW rules specified by this firewall"},"created":{"name":"created","type":"\t","is_mandatory":true,"title":"Creation timestamp"},"denied":{"name":"denied","type":"\u0019\n","is_mandatory":true,"title":"List of DENY rules specified by this firewall"},"description":{"name":"description","type":"\u0007","is_mandatory":true,"title":"An optional description of this resource"},"destinationRanges":{"name":"destinationRanges","type":"\u0019\u0007","is_mandatory":true,"title":"If defined the rule applies only to traffic that has destination IP address"},"direction":{"name":"direction","type":"\u0007","is_mandatory":true,"title":"Direction of traffic"},"disabled":{"name":"disabled","type":"\u0004","is_mandatory":true,"title":"Indicates whether the firewall rule is disabled"},"id":{"name":"id","type":"\u0007","is_mandatory":true,"title":"Unique Identifier"},"name":{"name":"name","type":"\u0007","is_mandatory":true,"title":"User-provided name"},"priority":{"name":"priority","type":"\u0005","is_mandatory":true,"title":"Priority for this rule"},"sourceRanges":{"name":"sourceRanges","type":"\u0019\u0007","is_mandatory":true,"title":"Source Ranges"},"sourceServiceAccounts":{"name":"sourceServiceAccounts","type":"\u0019\u0007","is_mandatory":true,"title":"Source Service Accounts"},"sourceTags":{"name":"sourceTags","type":"\u0019\u0007","is_mandatory":true,"title":"Source Tags"},"targetServiceAccounts":{"name":"targetServiceAccounts","type":"\u0019\u0007","is_mandatory":true,"title":"List of service accounts"}},"title":"GCP Compute Firewall","private":true,"defaults":"name"},"gcp.project.computeService.image":{"id":"gcp.project.computeService.image","name":"gcp.project.computeService.image","fields":{"architecture":{"name":"architecture","type":"\u0007","is_mandatory":true,"title":"Architecture of the snapshot"},"archiveSizeBytes":{"name":"archiveSizeBytes","type":"\u0005","is_mandatory":true,"title":"Size of the image tar.gz archive stored in Google Cloud Storage (in bytes)"},"created":{"name":"created","type":"\t","is_mandatory":true,"title":"Creation timestamp"},"description":{"name":"description","type":"\u0007","is_mandatory":true,"title":"Optional description"},"diskSizeGb":{"name":"diskSizeGb","type":"\u0005","is_mandatory":true,"title":"Size of the image when restored onto a persistent disk (in GB)"},"family":{"name":"family","type":"\u0007","is_mandatory":true,"title":"The name of the image family to which this image belongs"},"id":{"name":"id","type":"\u0007","is_mandatory":true,"title":"Unique identifier"},"labels":{"name":"labels","type":"\u001a\u0007\u0007","is_mandatory":true,"title":"Snapshot Labels"},"licenses":{"name":"licenses","type":"\u0019\u0007","is_mandatory":true,"title":"Public visible licenses"},"name":{"name":"name","type":"\u0007","is_mandatory":true,"title":"Name of the resource"},"status":{"name":"status","type":"\u0007","is_mandatory":true,"title":"The status of the image"}},"title":"GCP Compute","private":true,"defaults":"id name"},"gcp.project.computeService.instance":{"id":"gcp.project.computeService.instance","name":"gcp.project.computeService.instance","fields":{"canIpForward":{"name":"canIpForward","type":"\u0004","is_mandatory":true,"title":"Indicates if this instance is allowed to send and receive packets with non-matching destination or source IPs"},"confidentialInstanceConfig":{"name":"confidentialInstanceConfig","type":"\n","is_mandatory":true,"title":"Confidential instance configuration"},"cpuPlatform":{"name":"cpuPlatform","type":"\u0007","is_mandatory":true,"title":"The CPU platform used by this instance"},"created":{"name":"created","type":"\t","is_mandatory":true,"title":"Creation timestamp"},"deletionProtection":{"name":"deletionProtection","type":"\u0004","is_mandatory":true,"title":"Indicates if instance is protected against deletion"},"description":{"name":"description","type":"\u0007","is_mandatory":true,"title":"User-friendly name for this instance"},"disks":{"name":"disks","type":"\u0019\u001bgcp.project.computeService.attachedDisk","is_mandatory":true,"title":"Disks associated with this instance"},"enableDisplay":{"name":"enableDisplay","type":"\u0004","is_mandatory":true,"title":"Indicates if the instance has Display enabled"},"enableIntegrityMonitoring":{"name":"enableIntegrityMonitoring","type":"\u0004","is_mandatory":true,"title":"Indicates if Shielded Instance integrity monitoring is enabled"},"enableSecureBoot":{"name":"enableSecureBoot","type":"\u0004","is_mandatory":true,"title":"Indicates if Shielded Instance secure boot is enabled"},"enableVtpm":{"name":"enableVtpm","type":"\u0004","is_mandatory":true,"title":"Indicates if Shielded Instance vTPM is enabled"},"fingerprint":{"name":"fingerprint","type":"\u0007","is_mandatory":true,"title":"Instance Fingerprint"},"guestAccelerators":{"name":"guestAccelerators","type":"\u0019\n","is_mandatory":true,"title":"Attached list of accelerator cards"},"hostname":{"name":"hostname","type":"\u0007","is_mandatory":true,"title":"Hostname of the instance"},"id":{"name":"id","type":"\u0007","is_mandatory":true,"title":"Unique identifier for the resource"},"keyRevocationActionType":{"name":"keyRevocationActionType","type":"\u0007","is_mandatory":true,"title":"KeyRevocationActionType of the instance"},"labels":{"name":"labels","type":"\u001a\u0007\u0007","is_mandatory":true,"title":"User-provided labels"},"lastStartTimestamp":{"name":"lastStartTimestamp","type":"\t","is_mandatory":true,"title":"Last start timestamp"},"lastStopTimestamp":{"name":"lastStopTimestamp","type":"\t","is_mandatory":true,"title":"Last stop timestamp"},"lastSuspendedTimestamp":{"name":"lastSuspendedTimestamp","type":"\t","is_mandatory":true,"title":"Last suspended timestamp"},"machineType":{"name":"machineType","type":"\u001bgcp.project.computeService.machineType","title":"Machine type"},"metadata":{"name":"metadata","type":"\u001a\u0007\u0007","is_mandatory":true,"title":"Instance Metadata"},"minCpuPlatform":{"name":"minCpuPlatform","type":"\u0007","is_mandatory":true,"title":"Minimum CPU platform for the VM instance"},"name":{"name":"name","type":"\u0007","is_mandatory":true,"title":"User-friendly name for this instance"},"networkInterfaces":{"name":"networkInterfaces","type":"\u0019\n","is_mandatory":true,"title":"Network configurations for this instance"},"physicalHostResourceStatus":{"name":"physicalHostResourceStatus","type":"\u0007","is_mandatory":true,"title":"Resource status for physical host"},"privateIpv6GoogleAccess":{"name":"privateIpv6GoogleAccess","type":"\u0007","is_mandatory":true,"title":"private IPv6 google access type for the VM"},"projectId":{"name":"projectId","type":"\u0007","is_mandatory":true,"title":"Project ID"},"reservationAffinity":{"name":"reservationAffinity","type":"\n","is_mandatory":true,"title":"Reservations that this instance can consume from"},"resourcePolicies":{"name":"resourcePolicies","type":"\u0019\u0007","is_mandatory":true,"title":"Resource policies applied to this instance"},"scheduling":{"name":"scheduling","type":"\n","is_mandatory":true,"title":"Scheduling options"},"serviceAccounts":{"name":"serviceAccounts","type":"\u0019\u001bgcp.project.computeService.serviceaccount","is_mandatory":true,"title":"Service accounts authorized for this instance"},"sourceMachineImage":{"name":"sourceMachineImage","type":"\u0007","is_mandatory":true,"title":"Source machine image"},"startRestricted":{"name":"startRestricted","type":"\u0004","is_mandatory":true,"title":"Indicates if VM has been restricted for start because Compute Engine has detected suspicious activity"},"status":{"name":"status","type":"\u0007","is_mandatory":true,"title":"Instance status"},"statusMessage":{"name":"statusMessage","type":"\u0007","is_mandatory":true,"title":"Human-readable explanation of the status"},"tags":{"name":"tags","type":"\u0019\u0007","is_mandatory":true,"title":"Tags associated with this instance"},"totalEgressBandwidthTier":{"name":"totalEgressBandwidthTier","type":"\u0007","is_mandatory":true,"title":"Network performance configuration"},"zone":{"name":"zone","type":"\u001bgcp.project.computeService.zone","is_mandatory":true,"title":"Instance zone"}},"title":"GCP Compute Instances","private":true,"defaults":"name"},"gcp.project.computeService.machineType":{"id":"gcp.project.computeService.machineType","name":"gcp.project.computeService.machineType","fields":{"created":{"name":"created","type":"\t","is_mandatory":true,"title":"Creation timestamp"},"description":{"name":"description","type":"\u0007","is_mandatory":true,"title":"Resource Description"},"guestCpus":{"name":"guestCpus","type":"\u0005","is_mandatory":true,"title":"Number of virtual CPUs that are available to the instance"},"id":{"name":"id","type":"\u0007","is_mandatory":true,"title":"Unique identifier"},"isSharedCpu":{"name":"isSharedCpu","type":"\u0004","is_mandatory":true,"title":"Indicates if the machine has a shared CPU"},"maximumPersistentDisks":{"name":"maximumPersistentDisks","type":"\u0005","is_mandatory":true,"title":"Maximum persistent disks allowed"},"maximumPersistentDisksSizeGb":{"name":"maximumPersistentDisksSizeGb","type":"\u0005","is_mandatory":true,"title":"Maximum total persistent disks size (GB) allowed."},"memoryMb":{"name":"memoryMb","type":"\u0005","is_mandatory":true,"title":"Physical memory available to the instance (MB)"},"name":{"name":"name","type":"\u0007","is_mandatory":true,"title":"Name of the resource"},"projectId":{"name":"projectId","type":"\u0007","is_mandatory":true,"title":"Project ID"},"zone":{"name":"zone","type":"\u001bgcp.project.computeService.zone","is_mandatory":true,"title":"The zone where the machine type resides"}},"title":"GCP Machine Type","private":true,"defaults":"name"},"gcp.project.computeService.network":{"id":"gcp.project.computeService.network","name":"gcp.project.computeService.network","fields":{"autoCreateSubnetworks":{"name":"autoCreateSubnetworks","type":"\u0004","is_mandatory":true,"title":"If not set, indicates a legacy network"},"created":{"name":"created","type":"\t","is_mandatory":true,"title":"Creation timestamp"},"description":{"name":"description","type":"\u0007","is_mandatory":true,"title":"An optional description of this resource"},"enableUlaInternalIpv6":{"name":"enableUlaInternalIpv6","type":"\u0004","is_mandatory":true,"title":"Indicates if ULA internal IPv6 is enabled on this network"},"gatewayIPv4":{"name":"gatewayIPv4","type":"\u0007","is_mandatory":true,"title":"Gateway address for default routing"},"id":{"name":"id","type":"\u0007","is_mandatory":true,"title":"Unique Identifier"},"mode":{"name":"mode","type":"\u0007","is_mandatory":true,"title":"Network mode - legacy, custom or auto"},"mtu":{"name":"mtu","type":"\u0005","is_mandatory":true,"title":"Maximum Transmission Unit in bytes"},"name":{"name":"name","type":"\u0007","is_mandatory":true,"title":"Name of the resource"},"networkFirewallPolicyEnforcementOrder":{"name":"networkFirewallPolicyEnforcementOrder","type":"\u0007","is_mandatory":true,"title":"Network firewall policy enforcement order"},"peerings":{"name":"peerings","type":"\u0019\n","is_mandatory":true,"title":"Network peerings for the resource"},"routingMode":{"name":"routingMode","type":"\u0007","is_mandatory":true,"title":"The network-wide routing mode to use"},"subnetworkUrls":{"name":"subnetworkUrls","type":"\u0019\u0007","is_mandatory":true,"title":"List of URLs for the subnetwork in this network"},"subnetworks":{"name":"subnetworks","type":"\u0019\u001bgcp.project.computeService.subnetwork","title":"Subnetworks in this network"}},"title":"GCP Compute VPC Network resource","private":true,"defaults":"name"},"gcp.project.computeService.region":{"id":"gcp.project.computeService.region","name":"gcp.project.computeService.region","fields":{"created":{"name":"created","type":"\t","is_mandatory":true,"title":"Creation timestamp"},"deprecated":{"name":"deprecated","type":"\n","is_mandatory":true,"title":"Deprecation status"},"description":{"name":"description","type":"\u0007","is_mandatory":true,"title":"Resource Description"},"id":{"name":"id","type":"\u0007","is_mandatory":true,"title":"Unique identifier"},"name":{"name":"name","type":"\u0007","is_mandatory":true,"title":"Name of the resource"},"quotas":{"name":"quotas","type":"\u001a\u0007\u0006","is_mandatory":true,"title":"Quotas assigned to this region"},"status":{"name":"status","type":"\u0007","is_mandatory":true,"title":"Status of the region"}},"title":"GCP Compute Region","private":true,"defaults":"name"},"gcp.project.computeService.router":{"id":"gcp.project.computeService.router","name":"gcp.project.computeService.router","fields":{"bgp":{"name":"bgp","type":"\n","is_mandatory":true,"title":"BGP information"},"bgpPeers":{"name":"bgpPeers","type":"\u0019\n","is_mandatory":true,"title":"BGP routing stack configuration to establish BGP peering"},"created":{"name":"created","type":"\t","is_mandatory":true,"title":"Creation timestamp"},"description":{"name":"description","type":"\u0007","is_mandatory":true,"title":"An optional description of this resource"},"encryptedInterconnectRouter":{"name":"encryptedInterconnectRouter","type":"\u0004","is_mandatory":true,"title":"Indicates if a router is dedicated for use with encrypted VLAN attachments"},"id":{"name":"id","type":"\u0007","is_mandatory":true,"title":"Unique Identifier"},"name":{"name":"name","type":"\u0007","is_mandatory":true,"title":"Name of the resource"},"nats":{"name":"nats","type":"\u0019\n","is_mandatory":true,"title":"NAT services created in this router"}},"title":"GCP Compute Cloud Router","private":true,"defaults":"name"},"gcp.project.computeService.serviceaccount":{"id":"gcp.project.computeService.serviceaccount","name":"gcp.project.computeService.serviceaccount","fields":{"email":{"name":"email","type":"\u0007","is_mandatory":true,"title":"Service account email address"},"scopes":{"name":"scopes","type":"\u0019\u0007","is_mandatory":true,"title":"Service account scopes"}},"title":"GCP Compute Service Account","private":true,"defaults":"email"},"gcp.project.computeService.snapshot":{"id":"gcp.project.computeService.snapshot","name":"gcp.project.computeService.snapshot","fields":{"architecture":{"name":"architecture","type":"\u0007","is_mandatory":true,"title":"Architecture of the snapshot"},"autoCreated":{"name":"autoCreated","type":"\u0004","is_mandatory":true,"title":"Indicates if snapshot was automatically created"},"chainName":{"name":"chainName","type":"\u0007","is_mandatory":true,"title":"Snapshot Chain"},"created":{"name":"created","type":"\t","is_mandatory":true,"title":"Creation timestamp"},"creationSizeBytes":{"name":"creationSizeBytes","type":"\u0005","is_mandatory":true,"title":"Size in bytes of the snapshot at creation time"},"description":{"name":"description","type":"\u0007","is_mandatory":true,"title":"Optional description"},"diskSizeGb":{"name":"diskSizeGb","type":"\u0005","is_mandatory":true,"title":"Size of the source disk, specified in GB"},"downloadBytes":{"name":"downloadBytes","type":"\u0005","is_mandatory":true,"title":"Number of bytes downloaded to restore a snapshot to a disk"},"id":{"name":"id","type":"\u0007","is_mandatory":true,"title":"Unique identifier"},"labels":{"name":"labels","type":"\u001a\u0007\u0007","is_mandatory":true,"title":"Snapshot Labels"},"licenses":{"name":"licenses","type":"\u0019\u0007","is_mandatory":true,"title":"Public visible licenses"},"name":{"name":"name","type":"\u0007","is_mandatory":true,"title":"Name of the resource"},"snapshotType":{"name":"snapshotType","type":"\u0007","is_mandatory":true,"title":"Indicates the type of the snapshot"},"status":{"name":"status","type":"\u0007","is_mandatory":true,"title":"The status of the snapshot"},"storageBytes":{"name":"storageBytes","type":"\u0005","is_mandatory":true,"title":"Size of the storage used by the snapshot"},"storageBytesStatus":{"name":"storageBytesStatus","type":"\u0007","is_mandatory":true,"title":"An indicator whether storageBytes is in a stable state or in storage reallocation"}},"title":"GCP Compute Persistent Disk Snapshot","private":true,"defaults":"name"},"gcp.project.computeService.subnetwork":{"id":"gcp.project.computeService.subnetwork","name":"gcp.project.computeService.subnetwork","fields":{"created":{"name":"created","type":"\t","is_mandatory":true,"title":"Creation timestamp"},"description":{"name":"description","type":"\u0007","is_mandatory":true,"title":"An optional description of this resource"},"enableFlowLogs":{"name":"enableFlowLogs","type":"\u0004","is_mandatory":true,"title":"Indicates if flow logging for this subnetwork"},"externalIpv6Prefix":{"name":"externalIpv6Prefix","type":"\u0007","is_mandatory":true,"title":"External IPv6 address range"},"fingerprint":{"name":"fingerprint","type":"\u0007","is_mandatory":true,"title":"Fingerprint of this resource"},"gatewayAddress":{"name":"gatewayAddress","type":"\u0007","is_mandatory":true,"title":"Gateway address for default routes"},"id":{"name":"id","type":"\u0007","is_mandatory":true,"title":"Unique Identifier"},"internalIpv6Prefix":{"name":"internalIpv6Prefix","type":"\u0007","is_mandatory":true,"title":"Internal IPv6 address range"},"ipCidrRange":{"name":"ipCidrRange","type":"\u0007","is_mandatory":true,"title":"Range of internal addresses"},"ipv6AccessType":{"name":"ipv6AccessType","type":"\u0007","is_mandatory":true,"title":"Access type of IPv6 address"},"ipv6CidrRange":{"name":"ipv6CidrRange","type":"\u0007","is_mandatory":true,"title":"Range of internal IPv6 addresses"},"logConfig":{"name":"logConfig","type":"\u001bgcp.project.computeService.subnetwork.logConfig","is_mandatory":true,"title":"VPC flow logging configuration"},"name":{"name":"name","type":"\u0007","is_mandatory":true,"title":"Name of the resource"},"privateIpGoogleAccess":{"name":"privateIpGoogleAccess","type":"\u0004","is_mandatory":true,"title":"VMs in this subnet can access Google services without assigned external IP addresses"},"privateIpv6GoogleAccess":{"name":"privateIpv6GoogleAccess","type":"\u0007","is_mandatory":true,"title":"VMs in this subnet can access Google services without assigned external IPv6 addresses"},"projectId":{"name":"projectId","type":"\u0007","is_mandatory":true,"title":"Project ID"},"purpose":{"name":"purpose","type":"\u0007","is_mandatory":true,"title":"Purpose of the resource"},"region":{"name":"region","type":"\u001bgcp.project.computeService.region","title":"Region"},"regionUrl":{"name":"regionUrl","type":"\u0007","is_mandatory":true,"title":"Region URL"},"role":{"name":"role","type":"\u0007","is_mandatory":true,"title":"Role of subnetwork"},"stackType":{"name":"stackType","type":"\u0007","is_mandatory":true,"title":"Stack type for the subnet"},"state":{"name":"state","type":"\u0007","is_mandatory":true,"title":"State of the subnetwork"}},"title":"GCP Compute VPC Network Partitioning","private":true,"defaults":"name"},"gcp.project.computeService.subnetwork.logConfig":{"id":"gcp.project.computeService.subnetwork.logConfig","name":"gcp.project.computeService.subnetwork.logConfig","fields":{"aggregationInterval":{"name":"aggregationInterval","type":"\u0007","is_mandatory":true,"title":"Toggles the aggregation interval for collecting flow logs"},"enable":{"name":"enable","type":"\u0004","is_mandatory":true,"title":"Whether to enable flow logging for this subnetwork"},"filterExpression":{"name":"filterExpression","type":"\u0007","is_mandatory":true,"title":"Used to define which VPC flow logs should be exported to Cloud Logging"},"flowSampling":{"name":"flowSampling","type":"\u0006","is_mandatory":true,"title":"Sampling rate of VPC flow logs within the subnetwork where 1.0 means all collected logs are reported and 0.0 means no logs are reported"},"id":{"name":"id","type":"\u0007","is_mandatory":true,"title":"Internal ID"},"metadata":{"name":"metadata","type":"\u0007","is_mandatory":true,"title":"Whether all, none or a subset of metadata should be added to the reported VPC flow logs"},"metadataFields":{"name":"metadataFields","type":"\u0019\u0007","is_mandatory":true,"title":"Metadata fields to be added to the reported VPC flow logs"}},"title":"GCP Compute VPC Network Partitioning log configuration","private":true,"defaults":"enable"},"gcp.project.computeService.zone":{"id":"gcp.project.computeService.zone","name":"gcp.project.computeService.zone","fields":{"created":{"name":"created","type":"\t","is_mandatory":true,"title":"Creation timestamp"},"description":{"name":"description","type":"\u0007","is_mandatory":true,"title":"Resource Description"},"id":{"name":"id","type":"\u0007","is_mandatory":true,"title":"Unique identifier"},"name":{"name":"name","type":"\u0007","is_mandatory":true,"title":"Name of the resource"},"status":{"name":"status","type":"\u0007","is_mandatory":true,"title":"Status of the zone"}},"title":"GCP Compute Zone","private":true,"defaults":"name"},"gcp.project.dataprocService":{"id":"gcp.project.dataprocService","name":"gcp.project.dataprocService","fields":{"clusters":{"name":"clusters","type":"\u0019\u001bgcp.project.dataprocService.cluster","title":"List of Dataproc clusters in the current project"},"projectId":{"name":"projectId","type":"\u0007","is_mandatory":true,"title":"Project ID"},"regions":{"name":"regions","type":"\u0019\u0007","title":"List of available regions"}},"title":"GCP Dataproc Resources","private":true},"gcp.project.dataprocService.cluster":{"id":"gcp.project.dataprocService.cluster","name":"gcp.project.dataprocService.cluster","fields":{"config":{"name":"config","type":"\u001bgcp.project.dataprocService.cluster.config","is_mandatory":true,"title":"Cluster configuration"},"labels":{"name":"labels","type":"\u001a\u0007\u0007","is_mandatory":true,"title":"Labels associated with the cluster"},"metrics":{"name":"metrics","type":"\n","is_mandatory":true,"title":"Contains cluster daemon metrics such as HDF and YARN stats"},"name":{"name":"name","type":"\u0007","is_mandatory":true,"title":"Cluster name"},"projectId":{"name":"projectId","type":"\u0007","is_mandatory":true,"title":"Project ID"},"status":{"name":"status","type":"\u001bgcp.project.dataprocService.cluster.status","is_mandatory":true,"title":"Cluster status"},"statusHistory":{"name":"statusHistory","type":"\u0019\u001bgcp.project.dataprocService.cluster.status","is_mandatory":true,"title":"Previous cluster status"},"uuid":{"name":"uuid","type":"\u0007","is_mandatory":true,"title":"Cluster UUID"},"virtualClusterConfig":{"name":"virtualClusterConfig","type":"\u001bgcp.project.dataprocService.cluster.virtualClusterConfig","is_mandatory":true,"title":"Virtual cluster config used when creating a Dataproc cluster that does not directly control the underlying compute resources"}},"title":"GCP Dataproc cluster","private":true,"defaults":"name"},"gcp.project.dataprocService.cluster.config":{"id":"gcp.project.dataprocService.cluster.config","name":"gcp.project.dataprocService.cluster.config","fields":{"autoscaling":{"name":"autoscaling","type":"\n","is_mandatory":true,"title":"Autoscaling configuration for the policy associated with the cluster"},"configBucket":{"name":"configBucket","type":"\u0007","is_mandatory":true,"title":"Cloud Storage bucket used to stage job dependencies, config files, and job driver console output"},"encryption":{"name":"encryption","type":"\n","is_mandatory":true,"title":"Encryption configuration"},"endpoint":{"name":"endpoint","type":"\n","is_mandatory":true,"title":"Port/endpoint configuration"},"gceCluster":{"name":"gceCluster","type":"\u001bgcp.project.dataprocService.cluster.config.gceCluster","is_mandatory":true,"title":"Shared Compute Engine configuration"},"gkeCluster":{"name":"gkeCluster","type":"\u001bgcp.project.dataprocService.cluster.config.gkeCluster","is_mandatory":true,"title":"Kubernetes Engine config for Dataproc clusters deployed to Kubernetes"},"initializationActions":{"name":"initializationActions","type":"\u0019\n","is_mandatory":true,"title":"Commands to execute on each node after config is completed"},"lifecycle":{"name":"lifecycle","type":"\u001bgcp.project.dataprocService.cluster.config.lifecycle","is_mandatory":true,"title":"Lifecycle configuration"},"master":{"name":"master","type":"\u001bgcp.project.dataprocService.cluster.config.instance","is_mandatory":true,"title":"Compute Engine config for the cluster's master instance"},"metastore":{"name":"metastore","type":"\n","is_mandatory":true,"title":"Metastore configuration"},"metrics":{"name":"metrics","type":"\n","is_mandatory":true,"title":"Dataproc metrics configuration"},"parentResourcePath":{"name":"parentResourcePath","type":"\u0007","is_mandatory":true,"title":"Parent resource path"},"secondaryWorker":{"name":"secondaryWorker","type":"\u001bgcp.project.dataprocService.cluster.config.instance","is_mandatory":true,"title":"Compute Engine configuration for the cluster's secondary worker instances"},"security":{"name":"security","type":"\n","is_mandatory":true,"title":"Security configuration"},"software":{"name":"software","type":"\n","is_mandatory":true,"title":"Cluster software configuration"},"tempBucket":{"name":"tempBucket","type":"\u0007","is_mandatory":true,"title":"Cloud Storage bucket used to store ephemeral cluster and jobs data"},"worker":{"name":"worker","type":"\u001bgcp.project.dataprocService.cluster.config.instance","is_mandatory":true,"title":"Compute Engine configuration for the cluster's worker instances"}},"title":"GCP Dataproc cluster config","private":true},"gcp.project.dataprocService.cluster.config.gceCluster":{"id":"gcp.project.dataprocService.cluster.config.gceCluster","name":"gcp.project.dataprocService.cluster.config.gceCluster","fields":{"confidentialInstance":{"name":"confidentialInstance","type":"\n","is_mandatory":true,"title":"Confidential instance configuration"},"id":{"name":"id","type":"\u0007","is_mandatory":true,"title":"Internal ID"},"internalIpOnly":{"name":"internalIpOnly","type":"\u0004","is_mandatory":true,"title":"Whether the cluster has only internal IP addresses"},"metadata":{"name":"metadata","type":"\u001a\u0007\u0007","is_mandatory":true,"title":"Compute Engine metadata entries"},"networkUri":{"name":"networkUri","type":"\u0007","is_mandatory":true,"title":"Compute Engine network to be used for machine communications"},"nodeGroupAffinity":{"name":"nodeGroupAffinity","type":"\n","is_mandatory":true,"title":"Node Group Affinity for sole-tenant clusters"},"privateIpv6GoogleAccess":{"name":"privateIpv6GoogleAccess","type":"\u0007","is_mandatory":true,"title":"Type of IPv6 access for the cluster"},"reservationAffinity":{"name":"reservationAffinity","type":"\u001bgcp.project.dataprocService.cluster.config.gceCluster.reservationAffinity","is_mandatory":true,"title":"Reservation affinity for consuming zonal reservations"},"serviceAccount":{"name":"serviceAccount","type":"\u0007","is_mandatory":true,"title":"Dataproc service account used by the Dataproc cluster VM instances"},"serviceAccountScopes":{"name":"serviceAccountScopes","type":"\u0019\u0007","is_mandatory":true,"title":"URIs of service account scopes to be included in Compute Engine instances"},"shieldedInstanceConfig":{"name":"shieldedInstanceConfig","type":"\u001bgcp.project.dataprocService.cluster.config.gceCluster.shieldedInstanceConfig","is_mandatory":true,"title":"Shielded instance config for clusters using Compute Engine Shielded VMs"},"subnetworkUri":{"name":"subnetworkUri","type":"\u0007","is_mandatory":true,"title":"Compute Engine subnetwork to use for machine communications"},"tags":{"name":"tags","type":"\u0019\u0007","is_mandatory":true,"title":"Compute Engine tags"},"zoneUri":{"name":"zoneUri","type":"\u0007","is_mandatory":true,"title":"Zone where the Compute Engine cluster is located"}},"title":"GCP Dataproc cluster endpoint config","private":true},"gcp.project.dataprocService.cluster.config.gceCluster.reservationAffinity":{"id":"gcp.project.dataprocService.cluster.config.gceCluster.reservationAffinity","name":"gcp.project.dataprocService.cluster.config.gceCluster.reservationAffinity","fields":{"consumeReservationType":{"name":"consumeReservationType","type":"\u0007","is_mandatory":true,"title":"Type of reservation to consume"},"id":{"name":"id","type":"\u0007","is_mandatory":true,"title":"Internal ID"},"key":{"name":"key","type":"\u0007","is_mandatory":true,"title":"Corresponds to the label key of the reservation resource"},"values":{"name":"values","type":"\u0019\u0007","is_mandatory":true,"title":"Corresponds to the label values of the reservation resource"}},"title":"GCP Dataproc cluster GCE Cluster reservation affinity config","private":true},"gcp.project.dataprocService.cluster.config.gceCluster.shieldedInstanceConfig":{"id":"gcp.project.dataprocService.cluster.config.gceCluster.shieldedInstanceConfig","name":"gcp.project.dataprocService.cluster.config.gceCluster.shieldedInstanceConfig","fields":{"enableIntegrityMonitoring":{"name":"enableIntegrityMonitoring","type":"\u0004","is_mandatory":true,"title":"Whether the instances have integrity monitoring enabled"},"enableSecureBoot":{"name":"enableSecureBoot","type":"\u0004","is_mandatory":true,"title":"Whether the instances have Secure Boot enabled"},"enableVtpm":{"name":"enableVtpm","type":"\u0004","is_mandatory":true,"title":"Whether the instances have the vTPM enabled"},"id":{"name":"id","type":"\u0007","is_mandatory":true,"title":"Internal ID"}},"title":"GCP Dataproc cluster GCE Cluster shielded instance config","private":true},"gcp.project.dataprocService.cluster.config.gkeCluster":{"id":"gcp.project.dataprocService.cluster.config.gkeCluster","name":"gcp.project.dataprocService.cluster.config.gkeCluster","fields":{"gkeClusterTarget":{"name":"gkeClusterTarget","type":"\u0007","is_mandatory":true,"title":"Target GKE cluster"},"id":{"name":"id","type":"\u0007","is_mandatory":true,"title":"Internal ID"},"nodePoolTarget":{"name":"nodePoolTarget","type":"\u0019\n","is_mandatory":true,"title":"GKE node pools where workloads are scheduled"}},"title":"GCP Dataproc cluster GKE Cluster config","private":true},"gcp.project.dataprocService.cluster.config.instance":{"id":"gcp.project.dataprocService.cluster.config.instance","name":"gcp.project.dataprocService.cluster.config.instance","fields":{"accelerators":{"name":"accelerators","type":"\u0019\n","is_mandatory":true,"title":"Compute Engine accelerators"},"diskConfig":{"name":"diskConfig","type":"\u001bgcp.project.dataprocService.cluster.config.instance.diskConfig","is_mandatory":true,"title":"Disk options"},"id":{"name":"id","type":"\u0007","is_mandatory":true,"title":"Internal ID"},"imageUri":{"name":"imageUri","type":"\u0007","is_mandatory":true,"title":"Compute Engine imager resource used for cluster instances"},"instanceNames":{"name":"instanceNames","type":"\u0019\u0007","is_mandatory":true,"title":"List of instance names"},"instanceReferences":{"name":"instanceReferences","type":"\u0019\n","is_mandatory":true,"title":"List of references to Compute Engine instances"},"isPreemptible":{"name":"isPreemptible","type":"\u0004","is_mandatory":true,"title":"Whether the instance group contains preemptible instances"},"machineTypeUri":{"name":"machineTypeUri","type":"\u0007","is_mandatory":true,"title":"Compute Engine machine type used for cluster instances"},"managedGroupConfig":{"name":"managedGroupConfig","type":"\n","is_mandatory":true,"title":"Config for Compute Engine Instance Group Manager that manages this group"},"minCpuPlatform":{"name":"minCpuPlatform","type":"\u0007","is_mandatory":true,"title":"Minimum CPU platform for the instance group"},"numInstances":{"name":"numInstances","type":"\u0005","is_mandatory":true,"title":"Number of VM instances in the instance group"},"preemptibility":{"name":"preemptibility","type":"\u0007","is_mandatory":true,"title":"The preemptibility of the instance group"}},"title":"GCP Dataproc cluster instance config","private":true},"gcp.project.dataprocService.cluster.config.instance.diskConfig":{"id":"gcp.project.dataprocService.cluster.config.instance.diskConfig","name":"gcp.project.dataprocService.cluster.config.instance.diskConfig","fields":{"bootDiskSizeGb":{"name":"bootDiskSizeGb","type":"\u0005","is_mandatory":true,"title":"Size in GB of the boot disk"},"bootDiskType":{"name":"bootDiskType","type":"\u0007","is_mandatory":true,"title":"Type of the boot disk"},"id":{"name":"id","type":"\u0007","is_mandatory":true,"title":"Internal ID"},"localSsdInterface":{"name":"localSsdInterface","type":"\u0007","is_mandatory":true,"title":"Interface type of local SSDs"},"numLocalSsds":{"name":"numLocalSsds","type":"\u0005","is_mandatory":true,"title":"Number of attached SSDs"}},"title":"GCP Dataproc cluster instance disk config","private":true},"gcp.project.dataprocService.cluster.config.lifecycle":{"id":"gcp.project.dataprocService.cluster.config.lifecycle","name":"gcp.project.dataprocService.cluster.config.lifecycle","fields":{"autoDeleteTime":{"name":"autoDeleteTime","type":"\u0007","is_mandatory":true,"title":"Time when the cluster will be auto-deleted"},"autoDeleteTtl":{"name":"autoDeleteTtl","type":"\u0007","is_mandatory":true,"title":"Lifetime duration of the cluster"},"id":{"name":"id","type":"\u0007","is_mandatory":true,"title":"Internal ID"},"idleDeleteTtl":{"name":"idleDeleteTtl","type":"\u0007","is_mandatory":true,"title":"Duration to keep the cluster alive while idling"},"idleStartTime":{"name":"idleStartTime","type":"\u0007","is_mandatory":true,"title":"Time when the cluster will be auto-resumed"}},"title":"GCP Dataproc cluster lifecycle config","private":true},"gcp.project.dataprocService.cluster.status":{"id":"gcp.project.dataprocService.cluster.status","name":"gcp.project.dataprocService.cluster.status","fields":{"detail":{"name":"detail","type":"\u0007","is_mandatory":true,"title":"Details of the cluster's state"},"id":{"name":"id","type":"\u0007","is_mandatory":true,"title":"Internal ID"},"started":{"name":"started","type":"\t","is_mandatory":true,"title":"Started timestamp"},"state":{"name":"state","type":"\u0007","is_mandatory":true,"title":"Cluster's state"},"substate":{"name":"substate","type":"\u0007","is_mandatory":true,"title":"Additional state information that includes status reported by the agent"}},"title":"GCP Dataproc cluster status","private":true,"defaults":"state"},"gcp.project.dataprocService.cluster.virtualClusterConfig":{"id":"gcp.project.dataprocService.cluster.virtualClusterConfig","name":"gcp.project.dataprocService.cluster.virtualClusterConfig","fields":{"auxiliaryServices":{"name":"auxiliaryServices","type":"\n","is_mandatory":true,"title":"Auxiliary services configuration"},"kubernetesCluster":{"name":"kubernetesCluster","type":"\n","is_mandatory":true,"title":"Kubernetes cluster configuration"},"parentResourcePath":{"name":"parentResourcePath","type":"\u0007","is_mandatory":true,"title":"Parent resource path"},"stagingBucket":{"name":"stagingBucket","type":"\u0007","is_mandatory":true,"title":"Cloud Storage bucket used to stage job dependencies, config files, and job driver console output"}},"title":"GCP Dataproc cluster virtual cluster config","private":true},"gcp.project.dnsService":{"id":"gcp.project.dnsService","name":"gcp.project.dnsService","fields":{"managedZones":{"name":"managedZones","type":"\u0019\u001bgcp.project.dnsService.managedzone","title":"Cloud DNS managed zone in project"},"policies":{"name":"policies","type":"\u0019\u001bgcp.project.dnsService.policy","title":"Cloud DNS rules in project"},"projectId":{"name":"projectId","type":"\u0007","is_mandatory":true,"title":"Project ID"}},"title":"GCP Cloud DNS","private":true},"gcp.project.dnsService.managedzone":{"id":"gcp.project.dnsService.managedzone","name":"gcp.project.dnsService.managedzone","fields":{"created":{"name":"created","type":"\t","is_mandatory":true,"title":"Creation timestamp"},"description":{"name":"description","type":"\u0007","is_mandatory":true,"title":"User-friendly description of the resource"},"dnsName":{"name":"dnsName","type":"\u0007","is_mandatory":true,"title":"DNS name of this managed zone"},"dnssecConfig":{"name":"dnssecConfig","type":"\n","is_mandatory":true,"title":"DNSSEC configuration"},"id":{"name":"id","type":"\u0007","is_mandatory":true,"title":"Managed Zone ID"},"name":{"name":"name","type":"\u0007","is_mandatory":true,"title":"User-friendly name of the resource"},"nameServerSet":{"name":"nameServerSet","type":"\u0007","is_mandatory":true,"title":"Optionally specifies the NameServerSet for this ManagedZone"},"nameServers":{"name":"nameServers","type":"\u0019\u0007","is_mandatory":true,"title":"Delegated to these virtual name servers"},"projectId":{"name":"projectId","type":"\u0007","is_mandatory":true,"title":"Project ID"},"recordSets":{"name":"recordSets","type":"\u0019\u001bgcp.project.dnsService.recordset","title":"Cloud DNS RecordSet in zone"},"visibility":{"name":"visibility","type":"\u0007","is_mandatory":true,"title":"Zone's visibility"}},"title":"Cloud DNS managed zone is a resource that represents a DNS zone hosted by the Cloud DNS service","private":true,"defaults":"name"},"gcp.project.dnsService.policy":{"id":"gcp.project.dnsService.policy","name":"gcp.project.dnsService.policy","fields":{"description":{"name":"description","type":"\u0007","is_mandatory":true,"title":"User-friendly description of the resource"},"enableInboundForwarding":{"name":"enableInboundForwarding","type":"\u0004","is_mandatory":true,"title":"Indicates if DNS queries sent by VMs or applications over VPN connections are allowed"},"enableLogging":{"name":"enableLogging","type":"\u0004","is_mandatory":true,"title":"Indicates if logging is enabled"},"id":{"name":"id","type":"\u0007","is_mandatory":true,"title":"Managed Zone ID"},"name":{"name":"name","type":"\u0007","is_mandatory":true,"title":"User-friendly name of the resource"},"networkNames":{"name":"networkNames","type":"\u0019\u0007","is_mandatory":true,"title":"List of network names specifying networks to which this policy is applied"},"networks":{"name":"networks","type":"\u0019\u001bgcp.project.computeService.network","title":"List of networks to which this policy is applied"},"projectId":{"name":"projectId","type":"\u0007","is_mandatory":true,"title":"Project ID"}},"title":"Cloud DNS rules applied to one or more Virtual Private Cloud resources","private":true,"defaults":"name"},"gcp.project.dnsService.recordset":{"id":"gcp.project.dnsService.recordset","name":"gcp.project.dnsService.recordset","fields":{"name":{"name":"name","type":"\u0007","is_mandatory":true,"title":"User-friendly name of the resource"},"projectId":{"name":"projectId","type":"\u0007","is_mandatory":true,"title":"Project ID"},"rrdatas":{"name":"rrdatas","type":"\u0019\u0007","is_mandatory":true,"title":"Rrdatas: As defined in RFC 1035 (section 5) and RFC 1034 (section 3.6.1)"},"signatureRrdatas":{"name":"signatureRrdatas","type":"\u0019\u0007","is_mandatory":true,"title":"SignatureRrdatas: As defined in RFC 4034"},"ttl":{"name":"ttl","type":"\u0005","is_mandatory":true,"title":"Number of seconds that this ResourceRecordSet can be cached by resolvers"},"type":{"name":"type","type":"\u0007","is_mandatory":true,"title":"The identifier of a supported record type"}},"title":"Cloud DNS RecordSet","private":true,"defaults":"name"},"gcp.project.gkeService":{"id":"gcp.project.gkeService","name":"gcp.project.gkeService","fields":{"clusters":{"name":"clusters","type":"\u0019\u001bgcp.project.gkeService.cluster","title":"List of GKE clusters in the current project"},"projectId":{"name":"projectId","type":"\u0007","is_mandatory":true,"title":"Project ID"}},"title":"GCP GKE","private":true},"gcp.project.gkeService.cluster":{"id":"gcp.project.gkeService.cluster","name":"gcp.project.gkeService.cluster","fields":{"autopilotEnabled":{"name":"autopilotEnabled","type":"\u0004","is_mandatory":true,"title":"Whether Autopilot is enabled for the cluster"},"clusterIpv4Cidr":{"name":"clusterIpv4Cidr","type":"\u0007","is_mandatory":true,"title":"The IP address range of the container pods in this cluster"},"created":{"name":"created","type":"\t","is_mandatory":true,"title":"Creation time"},"currentMasterVersion":{"name":"currentMasterVersion","type":"\u0007","is_mandatory":true,"title":"The current software version of the master endpoint"},"description":{"name":"description","type":"\u0007","is_mandatory":true,"title":"Optional description for the cluster"},"enableKubernetesAlpha":{"name":"enableKubernetesAlpha","type":"\u0004","is_mandatory":true,"title":"Enable Kubernetes alpha features"},"endpoint":{"name":"endpoint","type":"\u0007","is_mandatory":true,"title":"The IP address of this cluster's master endpoint"},"expirationTime":{"name":"expirationTime","type":"\t","is_mandatory":true,"title":"The time the cluster will be automatically deleted in"},"id":{"name":"id","type":"\u0007","is_mandatory":true,"title":"Unique identifier for the cluster"},"initialClusterVersion":{"name":"initialClusterVersion","type":"\u0007","is_mandatory":true,"title":"The initial Kubernetes version for this cluster"},"locations":{"name":"locations","type":"\u0019\u0007","is_mandatory":true,"title":"The list of Google Compute Engine zones in which the cluster's nodes should be located."},"loggingService":{"name":"loggingService","type":"\u0007","is_mandatory":true,"title":"The logging service the cluster should use to write logs"},"monitoringService":{"name":"monitoringService","type":"\u0007","is_mandatory":true,"title":"The monitoring service the cluster should use to write metrics"},"name":{"name":"name","type":"\u0007","is_mandatory":true,"title":"The name of the cluster"},"network":{"name":"network","type":"\u0007","is_mandatory":true,"title":"The name of the Google Compute Engine network to which the cluster is connected"},"nodePools":{"name":"nodePools","type":"\u0019\u001bgcp.project.gkeService.cluster.nodepool","is_mandatory":true,"title":"The list of node pools for the cluster"},"projectId":{"name":"projectId","type":"\u0007","is_mandatory":true,"title":"Project ID"},"resourceLabels":{"name":"resourceLabels","type":"\u001a\u0007\u0007","is_mandatory":true,"title":"The resource labels for the cluster to use to annotate any related Google Compute Engine resources."},"status":{"name":"status","type":"\u0007","is_mandatory":true,"title":"The current status of this cluster"},"subnetwork":{"name":"subnetwork","type":"\u0007","is_mandatory":true,"title":"The name of the Google Compute Engine subnetwork to which the cluster is connected."},"zone":{"name":"zone","type":"\u0007","is_mandatory":true,"title":"The name of the Google Compute Engine zone in which the cluster resides"}},"title":"GCP GKE Cluster","private":true,"defaults":"name"},"gcp.project.gkeService.cluster.nodepool":{"id":"gcp.project.gkeService.cluster.nodepool","name":"gcp.project.gkeService.cluster.nodepool","fields":{"config":{"name":"config","type":"\u001bgcp.project.gkeService.cluster.nodepool.config","is_mandatory":true,"title":"The node configuration of the pool"},"id":{"name":"id","type":"\u0007","is_mandatory":true,"title":"Internal ID"},"initialNodeCount":{"name":"initialNodeCount","type":"\u0005","is_mandatory":true,"title":"The initial node count for the pool"},"instanceGroupUrls":{"name":"instanceGroupUrls","type":"\u0019\u0007","is_mandatory":true,"title":"The resource URLs of the managed instance groups associated with this node pool"},"locations":{"name":"locations","type":"\u0019\u0007","is_mandatory":true,"title":"The list of Google Compute Engine zones in which the NodePool's nodes should be located."},"name":{"name":"name","type":"\u0007","is_mandatory":true,"title":"The name of the node pool"},"networkConfig":{"name":"networkConfig","type":"\u001bgcp.project.gkeService.cluster.nodepool.networkConfig","is_mandatory":true,"title":"Networking configuration for this node pool."},"status":{"name":"status","type":"\u0007","is_mandatory":true,"title":"The current status of this node pool"},"version":{"name":"version","type":"\u0007","is_mandatory":true,"title":"The Kubernetes version"}},"title":"GKE Cluster Node Pool","private":true,"defaults":"name"},"gcp.project.gkeService.cluster.nodepool.config":{"id":"gcp.project.gkeService.cluster.nodepool.config","name":"gcp.project.gkeService.cluster.nodepool.config","fields":{"accelerators":{"name":"accelerators","type":"\u0019\u001bgcp.project.gkeService.cluster.nodepool.config.accelerator","is_mandatory":true,"title":"A list of hardware accelerators to be attached to each node"},"advancedMachineFeatures":{"name":"advancedMachineFeatures","type":"\u001bgcp.project.gkeService.cluster.nodepool.config.advancedMachineFeatures","is_mandatory":true,"title":"Advanced features for the Compute Engine VM"},"bootDiskKmsKey":{"name":"bootDiskKmsKey","type":"\u0007","is_mandatory":true,"title":"The Customer Managed Encryption Key used to encrypt the boot disk attached to each node"},"confidentialNodes":{"name":"confidentialNodes","type":"\u001bgcp.project.gkeService.cluster.nodepool.config.confidentialNodes","is_mandatory":true,"title":"Confidential nodes configuration"},"diskSizeGb":{"name":"diskSizeGb","type":"\u0005","is_mandatory":true,"title":"Size of the disk attached to each node, specified in GB"},"diskType":{"name":"diskType","type":"\u0007","is_mandatory":true,"title":"Type of the disk attached to each node"},"gcfsConfig":{"name":"gcfsConfig","type":"\u001bgcp.project.gkeService.cluster.nodepool.config.gcfsConfig","is_mandatory":true,"title":"Google Container File System (image streaming) configuration"},"gvnicConfig":{"name":"gvnicConfig","type":"\u001bgcp.project.gkeService.cluster.nodepool.config.gvnicConfig","is_mandatory":true,"title":"GVNIC configuration"},"id":{"name":"id","type":"\u0007","is_mandatory":true,"title":"Internal ID"},"imageType":{"name":"imageType","type":"\u0007","is_mandatory":true,"title":"The image type to use for this node"},"kubeletConfig":{"name":"kubeletConfig","type":"\u001bgcp.project.gkeService.cluster.nodepool.config.kubeletConfig","is_mandatory":true,"title":"Node kubelet configs"},"labels":{"name":"labels","type":"\u001a\u0007\u0007","is_mandatory":true,"title":"The map of Kubernetes labels to be applied to each node"},"linuxNodeConfig":{"name":"linuxNodeConfig","type":"\u001bgcp.project.gkeService.cluster.nodepool.config.linuxNodeConfig","is_mandatory":true,"title":"Parameters that can be configured on Linux nodes"},"localSsdCount":{"name":"localSsdCount","type":"\u0005","is_mandatory":true,"title":"The number of local SSD disks to be attached to the node"},"machineType":{"name":"machineType","type":"\u0007","is_mandatory":true,"title":"The name of a Google Compute Engine machine type"},"metadata":{"name":"metadata","type":"\u001a\u0007\u0007","is_mandatory":true,"title":"The metadata key/value pairs assigned to instances in the cluster"},"minCpuPlatform":{"name":"minCpuPlatform","type":"\u0007","is_mandatory":true,"title":"Minimum CPU platform to be used by this instance"},"oauthScopes":{"name":"oauthScopes","type":"\u0019\u0007","is_mandatory":true,"title":"The set of Google API scopes to be made available on all of the node VMs under the \"default\" service account"},"preemptible":{"name":"preemptible","type":"\u0004","is_mandatory":true,"title":"Whether the nodes are created as preemptible VM instances."},"sandboxConfig":{"name":"sandboxConfig","type":"\u001bgcp.project.gkeService.cluster.nodepool.config.sandboxConfig","is_mandatory":true,"title":"Sandbox configuration for this node"},"serviceAccount":{"name":"serviceAccount","type":"\u0007","is_mandatory":true,"title":"The Google Cloud Platform Service Account to be used by the node VMs"},"shieldedInstanceConfig":{"name":"shieldedInstanceConfig","type":"\u001bgcp.project.gkeService.cluster.nodepool.config.shieldedInstanceConfig","is_mandatory":true,"title":"Shielded instance configuration"},"spot":{"name":"spot","type":"\u0004","is_mandatory":true,"title":"Spot flag for enabling Spot VM, which is a rebrand of the existing preemptible flag"},"tags":{"name":"tags","type":"\u0019\u0007","is_mandatory":true,"title":"The list of instance tags applied to all nodes"},"taints":{"name":"taints","type":"\u0019\u001bgcp.project.gkeService.cluster.nodepool.config.nodeTaint","is_mandatory":true,"title":"List of Kubernetes taints to be applied to each node"},"workloadMetadataMode":{"name":"workloadMetadataMode","type":"\u0007","is_mandatory":true,"title":"The workload metadata mode for this node"}},"title":"GCP GKE node pool configuration","private":true,"defaults":"machineType diskSizeGb"},"gcp.project.gkeService.cluster.nodepool.config.accelerator":{"id":"gcp.project.gkeService.cluster.nodepool.config.accelerator","name":"gcp.project.gkeService.cluster.nodepool.config.accelerator","fields":{"count":{"name":"count","type":"\u0005","is_mandatory":true,"title":"The number of the accelerator cards exposed to an instance"},"gpuPartitionSize":{"name":"gpuPartitionSize","type":"\u0007","is_mandatory":true,"title":"Size of partitions to create on the GPU"},"gpuSharingConfig":{"name":"gpuSharingConfig","type":"\u001bgcp.project.gkeService.cluster.nodepool.config.accelerator.gpuSharingConfig","is_mandatory":true,"title":"The configuration for GPU sharing"},"id":{"name":"id","type":"\u0007","is_mandatory":true,"title":"Internal ID"},"type":{"name":"type","type":"\u0007","is_mandatory":true,"title":"The accelerator type resource name"}},"title":"GCP GKE node pool hardware accelerators configuration","private":true,"defaults":"type count"},"gcp.project.gkeService.cluster.nodepool.config.accelerator.gpuSharingConfig":{"id":"gcp.project.gkeService.cluster.nodepool.config.accelerator.gpuSharingConfig","name":"gcp.project.gkeService.cluster.nodepool.config.accelerator.gpuSharingConfig","fields":{"id":{"name":"id","type":"\u0007","is_mandatory":true,"title":"Internal ID"},"maxSharedClientsPerGpu":{"name":"maxSharedClientsPerGpu","type":"\u0005","is_mandatory":true,"title":"The max number of containers that can share a GPU"},"strategy":{"name":"strategy","type":"\u0007","is_mandatory":true,"title":"The GPU sharing strategy"}},"title":"GPU sharing configuration","private":true,"defaults":"strategy"},"gcp.project.gkeService.cluster.nodepool.config.advancedMachineFeatures":{"id":"gcp.project.gkeService.cluster.nodepool.config.advancedMachineFeatures","name":"gcp.project.gkeService.cluster.nodepool.config.advancedMachineFeatures","fields":{"id":{"name":"id","type":"\u0007","is_mandatory":true,"title":"Internal ID"},"threadsPerCore":{"name":"threadsPerCore","type":"\u0005","is_mandatory":true,"title":"The number of threads per physical core. If unset, the maximum number of threads supported per core by the underlying processor is assumed"}},"title":"GCP GKE node pool advanced machine features configuration","private":true,"defaults":"threadsPerCore"},"gcp.project.gkeService.cluster.nodepool.config.confidentialNodes":{"id":"gcp.project.gkeService.cluster.nodepool.config.confidentialNodes","name":"gcp.project.gkeService.cluster.nodepool.config.confidentialNodes","fields":{"enabled":{"name":"enabled","type":"\u0004","is_mandatory":true,"title":"Whether to use confidential nodes"},"id":{"name":"id","type":"\u0007","is_mandatory":true,"title":"Internal ID"}},"title":"GCP GKE node pool confidential nodes configuration","private":true,"defaults":"enabled"},"gcp.project.gkeService.cluster.nodepool.config.gcfsConfig":{"id":"gcp.project.gkeService.cluster.nodepool.config.gcfsConfig","name":"gcp.project.gkeService.cluster.nodepool.config.gcfsConfig","fields":{"enabled":{"name":"enabled","type":"\u0004","is_mandatory":true,"title":"Whether to use GCFS"},"id":{"name":"id","type":"\u0007","is_mandatory":true,"title":"Internal ID"}},"title":"GCP GKE node pool GCFS configuration","private":true,"defaults":"enabled"},"gcp.project.gkeService.cluster.nodepool.config.gvnicConfig":{"id":"gcp.project.gkeService.cluster.nodepool.config.gvnicConfig","name":"gcp.project.gkeService.cluster.nodepool.config.gvnicConfig","fields":{"enabled":{"name":"enabled","type":"\u0004","is_mandatory":true,"title":"Whether to use GVNIC"},"id":{"name":"id","type":"\u0007","is_mandatory":true,"title":"Internal ID"}},"title":"GCP GKE node pool GVNIC configuration","private":true,"defaults":"enabled"},"gcp.project.gkeService.cluster.nodepool.config.kubeletConfig":{"id":"gcp.project.gkeService.cluster.nodepool.config.kubeletConfig","name":"gcp.project.gkeService.cluster.nodepool.config.kubeletConfig","fields":{"cpuCfsQuotaPeriod":{"name":"cpuCfsQuotaPeriod","type":"\u0007","is_mandatory":true,"title":"Set the CPU CFS quota period value 'cpu.cfs_period_us'"},"cpuManagerPolicy":{"name":"cpuManagerPolicy","type":"\u0007","is_mandatory":true,"title":"Control the CPU management policy on the node"},"id":{"name":"id","type":"\u0007","is_mandatory":true,"title":"Internal ID"},"podPidsLimit":{"name":"podPidsLimit","type":"\u0005","is_mandatory":true,"title":"Set the Pod PID limits"}},"title":"GCP GKE node pool kubelet configuration","private":true,"defaults":"cpuManagerPolicy podPidsLimit"},"gcp.project.gkeService.cluster.nodepool.config.linuxNodeConfig":{"id":"gcp.project.gkeService.cluster.nodepool.config.linuxNodeConfig","name":"gcp.project.gkeService.cluster.nodepool.config.linuxNodeConfig","fields":{"id":{"name":"id","type":"\u0007","is_mandatory":true,"title":"Internal ID"},"sysctls":{"name":"sysctls","type":"\u001a\u0007\u0007","is_mandatory":true,"title":"The Linux kernel parameters to be applied to the nodes and all pods running on them"}},"title":"GCP GKE node pool parameters that can be configured on Linux nodes","private":true,"defaults":"sysctls"},"gcp.project.gkeService.cluster.nodepool.config.nodeTaint":{"id":"gcp.project.gkeService.cluster.nodepool.config.nodeTaint","name":"gcp.project.gkeService.cluster.nodepool.config.nodeTaint","fields":{"effect":{"name":"effect","type":"\u0007","is_mandatory":true,"title":"Effect for the taint"},"id":{"name":"id","type":"\u0007","is_mandatory":true,"title":"Internal ID"},"key":{"name":"key","type":"\u0007","is_mandatory":true,"title":"Key for the taint"},"value":{"name":"value","type":"\u0007","is_mandatory":true,"title":"Value for the taint"}},"title":"GCP GKE Kubernetes node taint","private":true,"defaults":"key value effect"},"gcp.project.gkeService.cluster.nodepool.config.sandboxConfig":{"id":"gcp.project.gkeService.cluster.nodepool.config.sandboxConfig","name":"gcp.project.gkeService.cluster.nodepool.config.sandboxConfig","fields":{"id":{"name":"id","type":"\u0007","is_mandatory":true,"title":"Internal ID"},"type":{"name":"type","type":"\u0007","is_mandatory":true,"title":"Type of the sandbox to use for this node"}},"title":"GCP GKE node pool sandbox configuration","private":true,"defaults":"type"},"gcp.project.gkeService.cluster.nodepool.config.shieldedInstanceConfig":{"id":"gcp.project.gkeService.cluster.nodepool.config.shieldedInstanceConfig","name":"gcp.project.gkeService.cluster.nodepool.config.shieldedInstanceConfig","fields":{"enableIntegrityMonitoring":{"name":"enableIntegrityMonitoring","type":"\u0004","is_mandatory":true,"title":"Defines whether the instance has integrity monitoring enabled"},"enableSecureBoot":{"name":"enableSecureBoot","type":"\u0004","is_mandatory":true,"title":"Defines whether the instance has Secure Boot enabled"},"id":{"name":"id","type":"\u0007","is_mandatory":true,"title":"Internal ID"}},"title":"GCP GKE node pool shielded instance configuration","private":true,"defaults":"enableSecureBoot enableIntegrityMonitoring"},"gcp.project.gkeService.cluster.nodepool.networkConfig":{"id":"gcp.project.gkeService.cluster.nodepool.networkConfig","name":"gcp.project.gkeService.cluster.nodepool.networkConfig","fields":{"id":{"name":"id","type":"\u0007","is_mandatory":true,"title":"Internal ID"},"performanceConfig":{"name":"performanceConfig","type":"\u001bgcp.project.gkeService.cluster.nodepool.networkConfig.performanceConfig","is_mandatory":true,"title":"Network performance tier configuration"},"podIpv4CidrBlock":{"name":"podIpv4CidrBlock","type":"\u0007","is_mandatory":true,"title":"The IP address range for pod IPs in this node pool"},"podRange":{"name":"podRange","type":"\u0007","is_mandatory":true,"title":"The ID of the secondary range for pod IPs"}},"title":"GCP GKE node pool-level network configuration","private":true,"defaults":"podRange podIpv4CidrBlock"},"gcp.project.gkeService.cluster.nodepool.networkConfig.performanceConfig":{"id":"gcp.project.gkeService.cluster.nodepool.networkConfig.performanceConfig","name":"gcp.project.gkeService.cluster.nodepool.networkConfig.performanceConfig","fields":{"id":{"name":"id","type":"\u0007","is_mandatory":true,"title":"Internal ID"},"totalEgressBandwidthTier":{"name":"totalEgressBandwidthTier","type":"\u0007","is_mandatory":true,"title":"Specifies the total network bandwidth tier for the node pool"}},"title":"GCP GKE node pool network performance configuration","private":true,"defaults":"totalEgressBandwidthTier"},"gcp.project.iamService":{"id":"gcp.project.iamService","name":"gcp.project.iamService","fields":{"projectId":{"name":"projectId","type":"\u0007","is_mandatory":true,"title":"Project ID"},"serviceAccounts":{"name":"serviceAccounts","type":"\u0019\u001bgcp.project.iamService.serviceAccount","title":"List of service accounts"}},"title":"GCP IAM Resources","private":true},"gcp.project.iamService.serviceAccount":{"id":"gcp.project.iamService.serviceAccount","name":"gcp.project.iamService.serviceAccount","fields":{"description":{"name":"description","type":"\u0007","is_mandatory":true,"title":"Service account description"},"disabled":{"name":"disabled","type":"\u0004","is_mandatory":true,"title":"Whether the service account is disabled"},"displayName":{"name":"displayName","type":"\u0007","is_mandatory":true,"title":"User-specified, human-readable name for the service account"},"email":{"name":"email","type":"\u0007","is_mandatory":true,"title":"Email address of the service account"},"keys":{"name":"keys","type":"\u0019\u001bgcp.project.iamService.serviceAccount.key","title":"Service account keys"},"name":{"name":"name","type":"\u0007","is_mandatory":true,"title":"Service account name"},"oauth2ClientId":{"name":"oauth2ClientId","type":"\u0007","is_mandatory":true,"title":"OAuth 2.0 client ID"},"projectId":{"name":"projectId","type":"\u0007","is_mandatory":true,"title":"Project ID"},"uniqueId":{"name":"uniqueId","type":"\u0007","is_mandatory":true,"title":"Unique, stable, numeric ID for the service account"}},"title":"GCP Service Account","private":true},"gcp.project.iamService.serviceAccount.key":{"id":"gcp.project.iamService.serviceAccount.key","name":"gcp.project.iamService.serviceAccount.key","fields":{"disabled":{"name":"disabled","type":"\u0004","is_mandatory":true,"title":"Whether the key is disabled"},"keyAlgorithm":{"name":"keyAlgorithm","type":"\u0007","is_mandatory":true,"title":"Algorithm (and possibly key size) of the key"},"keyOrigin":{"name":"keyOrigin","type":"\u0007","is_mandatory":true,"title":"Key origin"},"keyType":{"name":"keyType","type":"\u0007","is_mandatory":true,"title":"Key type"},"name":{"name":"name","type":"\u0007","is_mandatory":true,"title":"Service account key name"},"validAfterTime":{"name":"validAfterTime","type":"\t","is_mandatory":true,"title":"Key can be used after this timestamp"},"validBeforeTime":{"name":"validBeforeTime","type":"\t","is_mandatory":true,"title":"Key can be used before this timestamp"}},"title":"GCP service account keys","private":true},"gcp.project.kmsService":{"id":"gcp.project.kmsService","name":"gcp.project.kmsService","fields":{"keyrings":{"name":"keyrings","type":"\u0019\u001bgcp.project.kmsService.keyring","title":"List of keyrings in the current project"},"locations":{"name":"locations","type":"\u0019\u0007","title":"Available locations for the service"},"projectId":{"name":"projectId","type":"\u0007","is_mandatory":true,"title":"Project ID"}},"title":"GCP KMS resources","private":true},"gcp.project.kmsService.keyring":{"id":"gcp.project.kmsService.keyring","name":"gcp.project.kmsService.keyring","fields":{"created":{"name":"created","type":"\t","is_mandatory":true,"title":"Time created"},"cryptokeys":{"name":"cryptokeys","type":"\u0019\u001bgcp.project.kmsService.keyring.cryptokey","title":"List of cryptokeys in the current keyring"},"location":{"name":"location","type":"\u0007","is_mandatory":true,"title":"Keyring location"},"name":{"name":"name","type":"\u0007","is_mandatory":true,"title":"Keyring name"},"projectId":{"name":"projectId","type":"\u0007","is_mandatory":true,"title":"Project ID"},"resourcePath":{"name":"resourcePath","type":"\u0007","is_mandatory":true,"title":"Full resource path"}},"title":"GCP KMS keyring","private":true,"defaults":"name"},"gcp.project.kmsService.keyring.cryptokey":{"id":"gcp.project.kmsService.keyring.cryptokey","name":"gcp.project.kmsService.keyring.cryptokey","fields":{"created":{"name":"created","type":"\t","is_mandatory":true,"title":"Creation timestamp"},"cryptoKeyBackend":{"name":"cryptoKeyBackend","type":"\u0007","is_mandatory":true,"title":"Resource name of the backend environment where the key material for all crypto key versions reside"},"destroyScheduledDuration":{"name":"destroyScheduledDuration","type":"\t","is_mandatory":true,"title":"Period of time that versions of this key spend in DESTROY_SCHEDULED state before being destroyed"},"iamPolicy":{"name":"iamPolicy","type":"\u0019\u001bgcp.resourcemanager.binding","title":"Crypto key IAM policy"},"importOnly":{"name":"importOnly","type":"\u0004","is_mandatory":true,"title":"Whether this key may contain imported versions only"},"labels":{"name":"labels","type":"\u001a\u0007\u0007","is_mandatory":true,"title":"User-defined labels"},"name":{"name":"name","type":"\u0007","is_mandatory":true,"title":"Crypto key name"},"nextRotation":{"name":"nextRotation","type":"\t","is_mandatory":true,"title":"Time at which KMS will create a new version of this key and mark it as primary"},"primary":{"name":"primary","type":"\u001bgcp.project.kmsService.keyring.cryptokey.version","is_mandatory":true,"title":"Primary version for encrypt to use for this crypto key"},"purpose":{"name":"purpose","type":"\u0007","is_mandatory":true,"title":"Crypto key purpose"},"resourcePath":{"name":"resourcePath","type":"\u0007","is_mandatory":true,"title":"Full resource path"},"rotationPeriod":{"name":"rotationPeriod","type":"\t","is_mandatory":true,"title":"Rotation period"},"versionTemplate":{"name":"versionTemplate","type":"\n","is_mandatory":true,"title":"Template describing the settings for new crypto key versions"},"versions":{"name":"versions","type":"\u0019\u001bgcp.project.kmsService.keyring.cryptokey.version","title":"List of cryptokey versions"}},"title":"GCP KMS crypto key","private":true,"defaults":"name purpose"},"gcp.project.kmsService.keyring.cryptokey.version":{"id":"gcp.project.kmsService.keyring.cryptokey.version","name":"gcp.project.kmsService.keyring.cryptokey.version","fields":{"algorithm":{"name":"algorithm","type":"\u0007","is_mandatory":true,"title":"Algorithm that this crypto key version supports"},"attestation":{"name":"attestation","type":"\u001bgcp.project.kmsService.keyring.cryptokey.version.attestation","is_mandatory":true,"title":"Statement generated and signed by HSM at key creation time"},"created":{"name":"created","type":"\t","is_mandatory":true,"title":"Time created"},"destroyEventTime":{"name":"destroyEventTime","type":"\t","is_mandatory":true,"title":"Destroy event timestamp"},"destroyed":{"name":"destroyed","type":"\t","is_mandatory":true,"title":"Time destroyed"},"externalProtectionLevelOptions":{"name":"externalProtectionLevelOptions","type":"\u001bgcp.project.kmsService.keyring.cryptokey.version.externalProtectionLevelOptions","is_mandatory":true,"title":"Additional fields for configuring external protection level"},"generated":{"name":"generated","type":"\t","is_mandatory":true,"title":"Time generated"},"importFailureReason":{"name":"importFailureReason","type":"\u0007","is_mandatory":true,"title":"The root cause of an import failure"},"importJob":{"name":"importJob","type":"\u0007","is_mandatory":true,"title":"Name of the import job used in the most recent import of this crypto key version"},"importTime":{"name":"importTime","type":"\t","is_mandatory":true,"title":"Time at which this crypto key version's key material was imported"},"name":{"name":"name","type":"\u0007","is_mandatory":true,"title":"Crypto key version name"},"protectionLevel":{"name":"protectionLevel","type":"\u0007","is_mandatory":true,"title":"The protection level describing how crypto operations perform with this crypto key version"},"reimportEligible":{"name":"reimportEligible","type":"\u0004","is_mandatory":true,"title":"Whether the crypto key version is eligible for reimport"},"resourcePath":{"name":"resourcePath","type":"\u0007","is_mandatory":true,"title":"Full resource path"},"state":{"name":"state","type":"\u0007","is_mandatory":true,"title":"Crypto key version's current state"}},"title":"GCP KMS crypto key version","private":true,"defaults":"name state"},"gcp.project.kmsService.keyring.cryptokey.version.attestation":{"id":"gcp.project.kmsService.keyring.cryptokey.version.attestation","name":"gcp.project.kmsService.keyring.cryptokey.version.attestation","fields":{"certificateChains":{"name":"certificateChains","type":"\u001bgcp.project.kmsService.keyring.cryptokey.version.attestation.certificatechains","is_mandatory":true,"title":"Certificate chains needed to validate the attestation"},"cryptoKeyVersionName":{"name":"cryptoKeyVersionName","type":"\u0007","is_mandatory":true,"title":"Crypto key version name"},"format":{"name":"format","type":"\u0007","is_mandatory":true,"title":"Format of the attestation data"}},"title":"GCP KMS crypto key version attestation","private":true},"gcp.project.kmsService.keyring.cryptokey.version.attestation.certificatechains":{"id":"gcp.project.kmsService.keyring.cryptokey.version.attestation.certificatechains","name":"gcp.project.kmsService.keyring.cryptokey.version.attestation.certificatechains","fields":{"caviumCerts":{"name":"caviumCerts","type":"\u0019\u0007","is_mandatory":true,"title":"Cavium certificate chain corresponding to the attestation"},"cryptoKeyVersionName":{"name":"cryptoKeyVersionName","type":"\u0007","is_mandatory":true,"title":"Crypto key version name"},"googleCardCerts":{"name":"googleCardCerts","type":"\u0019\u0007","is_mandatory":true,"title":"Google card certificate chain corresponding to the attestation"},"googlePartitionCerts":{"name":"googlePartitionCerts","type":"\u0019\u0007","is_mandatory":true,"title":"Google partition certificate chain corresponding to the attestation"}},"title":"GCP KMS crypto key version attestation certificate chains","private":true},"gcp.project.kmsService.keyring.cryptokey.version.externalProtectionLevelOptions":{"id":"gcp.project.kmsService.keyring.cryptokey.version.externalProtectionLevelOptions","name":"gcp.project.kmsService.keyring.cryptokey.version.externalProtectionLevelOptions","fields":{"cryptoKeyVersionName":{"name":"cryptoKeyVersionName","type":"\u0007","is_mandatory":true,"title":"Crypto key version name"},"ekmConnectionKeyPath":{"name":"ekmConnectionKeyPath","type":"\u0007","is_mandatory":true,"title":"Path to the external key material on the EKM when using EKM connection"},"externalKeyUri":{"name":"externalKeyUri","type":"\u0007","is_mandatory":true,"title":"URI for an external resource that the crypto key version represents"}},"title":"GCP KMS crypto key version external protection level options","private":true},"gcp.project.loggingservice":{"id":"gcp.project.loggingservice","name":"gcp.project.loggingservice","fields":{"buckets":{"name":"buckets","type":"\u0019\u001bgcp.project.loggingservice.bucket","title":"List of logging buckets"},"metrics":{"name":"metrics","type":"\u0019\u001bgcp.project.loggingservice.metric","title":"List of metrics"},"projectId":{"name":"projectId","type":"\u0007","is_mandatory":true,"title":"Project ID"},"sinks":{"name":"sinks","type":"\u0019\u001bgcp.project.loggingservice.sink","title":"List of log sinks"}},"title":"GCP Logging resources","private":true},"gcp.project.loggingservice.bucket":{"id":"gcp.project.loggingservice.bucket","name":"gcp.project.loggingservice.bucket","fields":{"cmekSettings":{"name":"cmekSettings","type":"\n","is_mandatory":true,"title":"CMEK settings of the log bucket"},"created":{"name":"created","type":"\t","is_mandatory":true,"title":"Creation timestamp"},"description":{"name":"description","type":"\u0007","is_mandatory":true,"title":"Description of the bucket"},"indexConfigs":{"name":"indexConfigs","type":"\u0019\u001bgcp.project.loggingservice.bucket.indexConfig","is_mandatory":true,"title":"List of indexed fields and related configuration data"},"lifecycleState":{"name":"lifecycleState","type":"\u0007","is_mandatory":true,"title":"Bucket lifecycle state"},"locked":{"name":"locked","type":"\u0004","is_mandatory":true,"title":"Whether the bucket is locked"},"name":{"name":"name","type":"\u0007","is_mandatory":true,"title":"Bucket name"},"projectId":{"name":"projectId","type":"\u0007","is_mandatory":true,"title":"Project ID"},"restrictedFields":{"name":"restrictedFields","type":"\u0019\u0007","is_mandatory":true,"title":"Log entry field paths that are denied access in this bucket"},"retentionDays":{"name":"retentionDays","type":"\u0005","is_mandatory":true,"title":"Logs will be retained by default for this amount of time, after which they will automatically be deleted"},"updated":{"name":"updated","type":"\t","is_mandatory":true,"title":"Last update timestamp of the bucket"}},"title":"GCP Logging bucket","private":true,"defaults":"name"},"gcp.project.loggingservice.bucket.indexConfig":{"id":"gcp.project.loggingservice.bucket.indexConfig","name":"gcp.project.loggingservice.bucket.indexConfig","fields":{"created":{"name":"created","type":"\t","is_mandatory":true,"title":"Creation timestamp"},"fieldPath":{"name":"fieldPath","type":"\u0007","is_mandatory":true,"title":"Log entry field path to index"},"id":{"name":"id","type":"\u0007","is_mandatory":true,"title":"Internal ID"},"type":{"name":"type","type":"\u0007","is_mandatory":true,"title":"Type of data in this index"}},"title":"GCP Logging bucket index config","private":true},"gcp.project.loggingservice.metric":{"id":"gcp.project.loggingservice.metric","name":"gcp.project.loggingservice.metric","fields":{"alertPolicies":{"name":"alertPolicies","type":"\u0019\u001bgcp.project.monitoringService.alertPolicy","title":"Alert policies for this metric"},"description":{"name":"description","type":"\u0007","is_mandatory":true,"title":"Metric description"},"filter":{"name":"filter","type":"\u0007","is_mandatory":true,"title":"Advanced log filter"},"id":{"name":"id","type":"\u0007","is_mandatory":true,"title":"Metric ID"},"projectId":{"name":"projectId","type":"\u0007","is_mandatory":true,"title":"Project ID"}},"title":"GCP Logging metric","private":true,"defaults":"description filter"},"gcp.project.loggingservice.sink":{"id":"gcp.project.loggingservice.sink","name":"gcp.project.loggingservice.sink","fields":{"destination":{"name":"destination","type":"\u0007","is_mandatory":true,"title":"Export destination"},"filter":{"name":"filter","type":"\u0007","is_mandatory":true,"title":"Optional advanced logs filter"},"id":{"name":"id","type":"\u0007","is_mandatory":true,"title":"Sink ID"},"includeChildren":{"name":"includeChildren","type":"\u0004","is_mandatory":true,"title":"Whether to allow the sink to export log entries from the organization or folder, plus (recursively) from any contained folders, billings accounts, or projects"},"projectId":{"name":"projectId","type":"\u0007","is_mandatory":true,"title":"Project ID"},"storageBucket":{"name":"storageBucket","type":"\u001bgcp.project.storageService.bucket","title":"Storage bucket to which the sink exports. Only set for sinks with a destination storage bucket"},"writerIdentity":{"name":"writerIdentity","type":"\u0007","is_mandatory":true,"title":"When exporting logs, logging adopts this identity for authorization"}},"title":"GCP Logging sink","private":true},"gcp.project.monitoringService":{"id":"gcp.project.monitoringService","name":"gcp.project.monitoringService","fields":{"alertPolicies":{"name":"alertPolicies","type":"\u0019\u001bgcp.project.monitoringService.alertPolicy","title":"List of alert policies"},"projectId":{"name":"projectId","type":"\u0007","is_mandatory":true,"title":"Project ID"}},"title":"GCP monitoring resources","private":true},"gcp.project.monitoringService.alertPolicy":{"id":"gcp.project.monitoringService.alertPolicy","name":"gcp.project.monitoringService.alertPolicy","fields":{"alertStrategy":{"name":"alertStrategy","type":"\n","is_mandatory":true,"title":"Configuration for notification channels notifications"},"combiner":{"name":"combiner","type":"\u0007","is_mandatory":true,"title":"How to combine the results of multiple conditions to determine if an incident should be opened"},"conditions":{"name":"conditions","type":"\u0019\n","is_mandatory":true,"title":"List of conditions for the policy"},"created":{"name":"created","type":"\t","is_mandatory":true,"title":"Creation timestamp"},"createdBy":{"name":"createdBy","type":"\u0007","is_mandatory":true,"title":"Email address of the user who created the alert policy"},"displayName":{"name":"displayName","type":"\u0007","is_mandatory":true,"title":"Display name"},"documentation":{"name":"documentation","type":"\n","is_mandatory":true,"title":"Documentation included with notifications and incidents related to this policy"},"enabled":{"name":"enabled","type":"\u0004","is_mandatory":true,"title":"Whether the policy is enabled"},"labels":{"name":"labels","type":"\u001a\u0007\u0007","is_mandatory":true,"title":"User-defined labels"},"name":{"name":"name","type":"\u0007","is_mandatory":true,"title":"Alert policy name"},"notificationChannelUrls":{"name":"notificationChannelUrls","type":"\u0019\u0007","is_mandatory":true,"title":"Notification channel URLs to which notifications should be sent when incidents are opened or closed"},"projectId":{"name":"projectId","type":"\u0007","is_mandatory":true,"title":"Project ID"},"updated":{"name":"updated","type":"\t","is_mandatory":true,"title":"Update timestamp"},"updatedBy":{"name":"updatedBy","type":"\u0007","is_mandatory":true,"title":"Email address of the user who last updated the alert policy"},"validity":{"name":"validity","type":"\n","is_mandatory":true,"title":"Description of how the alert policy is invalid"}},"title":"GCP monitoring alert policy","private":true},"gcp.project.pubsubService":{"id":"gcp.project.pubsubService","name":"gcp.project.pubsubService","fields":{"projectId":{"name":"projectId","type":"\u0007","is_mandatory":true,"title":"Project ID"},"snapshots":{"name":"snapshots","type":"\u0019\u001bgcp.project.pubsubService.snapshot","title":"List of snapshots in the current project"},"subscriptions":{"name":"subscriptions","type":"\u0019\u001bgcp.project.pubsubService.subscription","title":"List of subscriptions in the current project"},"topics":{"name":"topics","type":"\u0019\u001bgcp.project.pubsubService.topic","title":"List of topics in the current project"}},"title":"GCP Pub/Sub resources","private":true},"gcp.project.pubsubService.snapshot":{"id":"gcp.project.pubsubService.snapshot","name":"gcp.project.pubsubService.snapshot","fields":{"expiration":{"name":"expiration","type":"\t","is_mandatory":true,"title":"When the snapshot expires"},"name":{"name":"name","type":"\u0007","is_mandatory":true,"title":"Subscription name"},"projectId":{"name":"projectId","type":"\u0007","is_mandatory":true,"title":"Project ID"},"topic":{"name":"topic","type":"\u001bgcp.project.pubsubService.topic","is_mandatory":true,"title":"The topic for which the snapshot is"}},"title":"GCP Pub/Sub snapshot","private":true,"defaults":"name"},"gcp.project.pubsubService.subscription":{"id":"gcp.project.pubsubService.subscription","name":"gcp.project.pubsubService.subscription","fields":{"config":{"name":"config","type":"\u001bgcp.project.pubsubService.subscription.config","title":"Subscription configuration"},"name":{"name":"name","type":"\u0007","is_mandatory":true,"title":"Subscription name"},"projectId":{"name":"projectId","type":"\u0007","is_mandatory":true,"title":"Project ID"}},"title":"GCP Pub/Sub subscription","private":true,"defaults":"name"},"gcp.project.pubsubService.subscription.config":{"id":"gcp.project.pubsubService.subscription.config","name":"gcp.project.pubsubService.subscription.config","fields":{"ackDeadline":{"name":"ackDeadline","type":"\t","is_mandatory":true,"title":"Default maximum time a subscriber can take to acknowledge a message after receiving it"},"expirationPolicy":{"name":"expirationPolicy","type":"\t","is_mandatory":true,"title":"Specifies the conditions for a subscription's expiration"},"labels":{"name":"labels","type":"\u001a\u0007\u0007","is_mandatory":true,"title":"The labels associated with this subscription"},"projectId":{"name":"projectId","type":"\u0007","is_mandatory":true,"title":"Project ID"},"pushConfig":{"name":"pushConfig","type":"\u001bgcp.project.pubsubService.subscription.config.pushconfig","is_mandatory":true,"title":"Configuration for subscriptions that operate in push mode"},"retainAckedMessages":{"name":"retainAckedMessages","type":"\u0004","is_mandatory":true,"title":"Whether to retain acknowledged messages"},"retentionDuration":{"name":"retentionDuration","type":"\t","is_mandatory":true,"title":"How long to retain messages in the backlog after they're published"},"subscriptionName":{"name":"subscriptionName","type":"\u0007","is_mandatory":true,"title":"Subscription name"},"topic":{"name":"topic","type":"\u001bgcp.project.pubsubService.topic","is_mandatory":true,"title":"Topic to which the subscription points"}},"title":"GCP Pub/Sub subscription configuration","private":true,"defaults":"topic.name ackDeadline expirationPolicy"},"gcp.project.pubsubService.subscription.config.pushconfig":{"id":"gcp.project.pubsubService.subscription.config.pushconfig","name":"gcp.project.pubsubService.subscription.config.pushconfig","fields":{"attributes":{"name":"attributes","type":"\u001a\u0007\u0007","is_mandatory":true,"title":"Endpoint configuration attributes"},"configId":{"name":"configId","type":"\u0007","is_mandatory":true,"title":"Parent configuration ID"},"endpoint":{"name":"endpoint","type":"\u0007","is_mandatory":true,"title":"URL of the endpoint to which to push messages"}},"title":"GCP Pub/Sub Configuration for subscriptions that operate in push mode","private":true,"defaults":"attributes"},"gcp.project.pubsubService.topic":{"id":"gcp.project.pubsubService.topic","name":"gcp.project.pubsubService.topic","fields":{"config":{"name":"config","type":"\u001bgcp.project.pubsubService.topic.config","title":"Topic configuration"},"name":{"name":"name","type":"\u0007","is_mandatory":true,"title":"Topic name"},"projectId":{"name":"projectId","type":"\u0007","is_mandatory":true,"title":"Project ID"}},"title":"GCP Pub/Sub topic","private":true,"defaults":"name"},"gcp.project.pubsubService.topic.config":{"id":"gcp.project.pubsubService.topic.config","name":"gcp.project.pubsubService.topic.config","fields":{"kmsKeyName":{"name":"kmsKeyName","type":"\u0007","is_mandatory":true,"title":"Cloud KMS key used to protect access to messages published to this topic"},"labels":{"name":"labels","type":"\u001a\u0007\u0007","is_mandatory":true,"title":"Labels associated with this topic"},"messageStoragePolicy":{"name":"messageStoragePolicy","type":"\u001bgcp.project.pubsubService.topic.config.messagestoragepolicy","is_mandatory":true,"title":"Message storage policy"},"projectId":{"name":"projectId","type":"\u0007","is_mandatory":true,"title":"Project ID"},"topicName":{"name":"topicName","type":"\u0007","is_mandatory":true,"title":"Topic name"}},"title":"GCP Pub/Sub topic configuration","private":true,"defaults":"kmsKeyName messageStoragePolicy"},"gcp.project.pubsubService.topic.config.messagestoragepolicy":{"id":"gcp.project.pubsubService.topic.config.messagestoragepolicy","name":"gcp.project.pubsubService.topic.config.messagestoragepolicy","fields":{"allowedPersistenceRegions":{"name":"allowedPersistenceRegions","type":"\u0019\u0007","is_mandatory":true,"title":"List of GCP regions where messages published to the topic can persist in storage"},"configId":{"name":"configId","type":"\u0007","is_mandatory":true,"title":"Parent configuration ID"}},"title":"GCP Pub/Sub topic message storage policy","private":true,"defaults":"allowedPersistenceRegions"},"gcp.project.sqlService":{"id":"gcp.project.sqlService","name":"gcp.project.sqlService","fields":{"instances":{"name":"instances","type":"\u0019\u001bgcp.project.sqlService.instance","title":"List of Cloud SQL instances in the current project"},"projectId":{"name":"projectId","type":"\u0007","is_mandatory":true,"title":"Project ID"}},"title":"GCP Cloud SQL Resources","private":true},"gcp.project.sqlService.instance":{"id":"gcp.project.sqlService.instance","name":"gcp.project.sqlService.instance","fields":{"availableMaintenanceVersions":{"name":"availableMaintenanceVersions","type":"\u0019\u0007","is_mandatory":true,"title":"All maintenance versions applicable on the instance"},"backendType":{"name":"backendType","type":"\u0007","is_mandatory":true,"title":"Backend type"},"connectionName":{"name":"connectionName","type":"\u0007","is_mandatory":true,"title":"Connection name of the instance used in connection strings"},"created":{"name":"created","type":"\t","is_mandatory":true,"title":"Creation timestamp"},"currentDiskSize":{"name":"currentDiskSize","type":"\u0005","is_mandatory":true,"title":"Current disk usage of the instance in bytes. This is deprecated; use monitoring should be used instead."},"databaseInstalledVersion":{"name":"databaseInstalledVersion","type":"\u0007","is_mandatory":true,"title":"Current database version running on the instance"},"databaseVersion":{"name":"databaseVersion","type":"\u0007","is_mandatory":true,"title":"Database engine type and version"},"databases":{"name":"databases","type":"\u0019\u001bgcp.project.sqlService.instance.database","title":"List of the databases in the current SQL instance"},"diskEncryptionConfiguration":{"name":"diskEncryptionConfiguration","type":"\n","is_mandatory":true,"title":"Disk encryption configuration"},"diskEncryptionStatus":{"name":"diskEncryptionStatus","type":"\n","is_mandatory":true,"title":"Disk encryption status"},"failoverReplica":{"name":"failoverReplica","type":"\n","is_mandatory":true,"title":"Name and status of the failover replica"},"gceZone":{"name":"gceZone","type":"\u0007","is_mandatory":true,"title":"Compute Engine zone that the instance is currently serviced from"},"instanceType":{"name":"instanceType","type":"\u0007","is_mandatory":true,"title":"Instance type"},"ipAddresses":{"name":"ipAddresses","type":"\u0019\u001bgcp.project.sqlService.instance.ipMapping","is_mandatory":true,"title":"Assigned IP addresses"},"maintenanceVersion":{"name":"maintenanceVersion","type":"\u0007","is_mandatory":true,"title":"Current software version on the instance"},"masterInstanceName":{"name":"masterInstanceName","type":"\u0007","is_mandatory":true,"title":"Name of the instance that will act as primary in the replica"},"maxDiskSize":{"name":"maxDiskSize","type":"\u0005","is_mandatory":true,"title":"Maximum disk size in bytes"},"name":{"name":"name","type":"\u0007","is_mandatory":true,"title":"Instance name"},"project":{"name":"project","type":"\u0007","is_mandatory":true,"title":"This is deprecated; use projectId instead."},"projectId":{"name":"projectId","type":"\u0007","is_mandatory":true,"title":"Project ID"},"region":{"name":"region","type":"\u0007","is_mandatory":true,"title":"Region"},"replicaNames":{"name":"replicaNames","type":"\u0019\u0007","is_mandatory":true,"title":"Replicas"},"serviceAccountEmailAddress":{"name":"serviceAccountEmailAddress","type":"\u0007","is_mandatory":true,"title":"Service account email address"},"settings":{"name":"settings","type":"\u001bgcp.project.sqlService.instance.settings","is_mandatory":true,"title":"Settings"},"state":{"name":"state","type":"\u0007","is_mandatory":true,"title":"Instance state"}},"title":"GCP Cloud SQL Instance","private":true,"defaults":"name"},"gcp.project.sqlService.instance.database":{"id":"gcp.project.sqlService.instance.database","name":"gcp.project.sqlService.instance.database","fields":{"charset":{"name":"charset","type":"\u0007","is_mandatory":true,"title":"Charset value"},"collation":{"name":"collation","type":"\u0007","is_mandatory":true,"title":"Collation"},"instance":{"name":"instance","type":"\u0007","is_mandatory":true,"title":"Name of the Cloud SQL instance"},"name":{"name":"name","type":"\u0007","is_mandatory":true,"title":"Name of the database"},"projectId":{"name":"projectId","type":"\u0007","is_mandatory":true,"title":"Project ID"},"sqlserverDatabaseDetails":{"name":"sqlserverDatabaseDetails","type":"\n","is_mandatory":true,"title":"SQL Server database details"}},"title":"GCP Cloud SQL Instance database","private":true,"defaults":"name"},"gcp.project.sqlService.instance.ipMapping":{"id":"gcp.project.sqlService.instance.ipMapping","name":"gcp.project.sqlService.instance.ipMapping","fields":{"id":{"name":"id","type":"\u0007","is_mandatory":true,"title":"Internal ID"},"ipAddress":{"name":"ipAddress","type":"\u0007","is_mandatory":true,"title":"Assigned IP address"},"timeToRetire":{"name":"timeToRetire","type":"\t","is_mandatory":true,"title":"Due time for this IP to retire"},"type":{"name":"type","type":"\u0007","is_mandatory":true,"title":"Type of this IP address"}},"title":"GCP Cloud SQL Instance IP Mapping","private":true,"defaults":"ipAddress"},"gcp.project.sqlService.instance.settings":{"id":"gcp.project.sqlService.instance.settings","name":"gcp.project.sqlService.instance.settings","fields":{"activationPolicy":{"name":"activationPolicy","type":"\u0007","is_mandatory":true,"title":"When the instance is activated"},"activeDirectoryConfig":{"name":"activeDirectoryConfig","type":"\n","is_mandatory":true,"title":"Active Directory configuration (relevant only for Cloud SQL for SQL Server)"},"availabilityType":{"name":"availabilityType","type":"\u0007","is_mandatory":true,"title":"Availability type"},"backupConfiguration":{"name":"backupConfiguration","type":"\u001bgcp.project.sqlService.instance.settings.backupconfiguration","is_mandatory":true,"title":"Daily backup configuration for the instance"},"collation":{"name":"collation","type":"\u0007","is_mandatory":true,"title":"Name of the server collation"},"connectorEnforcement":{"name":"connectorEnforcement","type":"\u0007","is_mandatory":true,"title":"Whether connections must use Cloud SQL connectors"},"crashSafeReplicationEnabled":{"name":"crashSafeReplicationEnabled","type":"\u0004","is_mandatory":true,"title":"Whether database flags for crash-safe replication are enabled"},"dataDiskSizeGb":{"name":"dataDiskSizeGb","type":"\u0005","is_mandatory":true,"title":"Size of data disk, in GB"},"dataDiskType":{"name":"dataDiskType","type":"\u0007","is_mandatory":true,"title":"Type of the data disk"},"databaseFlags":{"name":"databaseFlags","type":"\u001a\u0007\u0007","is_mandatory":true,"title":"Database flags passed to the instance at startup"},"databaseReplicationEnabled":{"name":"databaseReplicationEnabled","type":"\u0004","is_mandatory":true,"title":"Whether replication is enabled"},"deletionProtectionEnabled":{"name":"deletionProtectionEnabled","type":"\u0004","is_mandatory":true,"title":"Whether to protect against accidental instance deletion"},"denyMaintenancePeriods":{"name":"denyMaintenancePeriods","type":"\u0019\u001bgcp.project.sqlService.instance.settings.denyMaintenancePeriod","is_mandatory":true,"title":"Deny maintenance periods"},"insightsConfig":{"name":"insightsConfig","type":"\n","is_mandatory":true,"title":"Insights configuration"},"instanceName":{"name":"instanceName","type":"\u0007","is_mandatory":true,"title":"Instance name"},"ipConfiguration":{"name":"ipConfiguration","type":"\u001bgcp.project.sqlService.instance.settings.ipConfiguration","is_mandatory":true,"title":"IP Management settings"},"locationPreference":{"name":"locationPreference","type":"\n","is_mandatory":true,"title":"Location preference settings"},"maintenanceWindow":{"name":"maintenanceWindow","type":"\u001bgcp.project.sqlService.instance.settings.maintenanceWindow","is_mandatory":true,"title":"Maintenance window"},"passwordValidationPolicy":{"name":"passwordValidationPolicy","type":"\u001bgcp.project.sqlService.instance.settings.passwordValidationPolicy","is_mandatory":true,"title":"Local user password validation policy"},"pricingPlan":{"name":"pricingPlan","type":"\u0007","is_mandatory":true,"title":"Pricing plan"},"projectId":{"name":"projectId","type":"\u0007","is_mandatory":true,"title":"Project ID"},"replicationType":{"name":"replicationType","type":"\u0007","is_mandatory":true,"title":"Replication type"},"settingsVersion":{"name":"settingsVersion","type":"\u0005","is_mandatory":true,"title":"Instance settings version"},"sqlServerAuditConfig":{"name":"sqlServerAuditConfig","type":"\n","is_mandatory":true,"title":"SQL server specific audit configuration"},"storageAutoResize":{"name":"storageAutoResize","type":"\u0004","is_mandatory":true,"title":"Configuration to increase storage size automatically"},"storageAutoResizeLimit":{"name":"storageAutoResizeLimit","type":"\u0005","is_mandatory":true,"title":"Maximum size to which storage capacity can be automatically increased"},"tier":{"name":"tier","type":"\u0007","is_mandatory":true,"title":"Service tier for this instance"},"timeZone":{"name":"timeZone","type":"\u0007","is_mandatory":true,"title":"Server timezone"},"userLabels":{"name":"userLabels","type":"\u001a\u0007\u0007","is_mandatory":true,"title":"User-provided labels"}},"title":"GCP Cloud SQL Instance Settings","private":true},"gcp.project.sqlService.instance.settings.backupconfiguration":{"id":"gcp.project.sqlService.instance.settings.backupconfiguration","name":"gcp.project.sqlService.instance.settings.backupconfiguration","fields":{"backupRetentionSettings":{"name":"backupRetentionSettings","type":"\n","is_mandatory":true,"title":"Backup retention settings"},"binaryLogEnabled":{"name":"binaryLogEnabled","type":"\u0004","is_mandatory":true,"title":"Whether binary log is enabled"},"enabled":{"name":"enabled","type":"\u0004","is_mandatory":true,"title":"Whether this configuration is enabled"},"id":{"name":"id","type":"\u0007","is_mandatory":true,"title":"Internal ID"},"location":{"name":"location","type":"\u0007","is_mandatory":true,"title":"Location of the backup"},"pointInTimeRecoveryEnabled":{"name":"pointInTimeRecoveryEnabled","type":"\u0004","is_mandatory":true,"title":"Whether point-in-time recovery is enabled"},"startTime":{"name":"startTime","type":"\u0007","is_mandatory":true,"title":"Start time for the daily backup configuration (in UTC timezone, in the 24 hour format)"},"transactionLogRetentionDays":{"name":"transactionLogRetentionDays","type":"\u0005","is_mandatory":true,"title":"Number of days of transaction logs retained for point-in-time restore"}},"title":"GCP Cloud SQL Instance Settings Backup Configuration","private":true},"gcp.project.sqlService.instance.settings.denyMaintenancePeriod":{"id":"gcp.project.sqlService.instance.settings.denyMaintenancePeriod","name":"gcp.project.sqlService.instance.settings.denyMaintenancePeriod","fields":{"endDate":{"name":"endDate","type":"\u0007","is_mandatory":true,"title":"Deny maintenance period end date"},"id":{"name":"id","type":"\u0007","is_mandatory":true,"title":"Internal ID"},"startDate":{"name":"startDate","type":"\u0007","is_mandatory":true,"title":"Deny maintenance period start date"},"time":{"name":"time","type":"\u0007","is_mandatory":true,"title":"Time in UTC when the deny maintenance period starts and ends"}},"title":"GCP Cloud SQL Instance Settings Deny Maintenance Period","private":true,"defaults":"startDate endDate"},"gcp.project.sqlService.instance.settings.ipConfiguration":{"id":"gcp.project.sqlService.instance.settings.ipConfiguration","name":"gcp.project.sqlService.instance.settings.ipConfiguration","fields":{"allocatedIpRange":{"name":"allocatedIpRange","type":"\u0007","is_mandatory":true,"title":"Name of the allocated IP range for the private IP Cloud SQL instance"},"authorizedNetworks":{"name":"authorizedNetworks","type":"\u0019\n","is_mandatory":true,"title":"List of external networks that are allowed to connect to the instance using the IP"},"id":{"name":"id","type":"\u0007","is_mandatory":true,"title":"Internal ID"},"ipv4Enabled":{"name":"ipv4Enabled","type":"\u0004","is_mandatory":true,"title":"Whether the instance is assigned a public IP address"},"privateNetwork":{"name":"privateNetwork","type":"\u0007","is_mandatory":true,"title":"Resource link for the VPC network from which the private IPs can access the Cloud SQL instance"},"requireSsl":{"name":"requireSsl","type":"\u0004","is_mandatory":true,"title":"Whether SSL connections over IP are enforced"}},"title":"GCP Cloud SQL Instance Settings IP Configuration","private":true},"gcp.project.sqlService.instance.settings.maintenanceWindow":{"id":"gcp.project.sqlService.instance.settings.maintenanceWindow","name":"gcp.project.sqlService.instance.settings.maintenanceWindow","fields":{"day":{"name":"day","type":"\u0005","is_mandatory":true,"title":"Day of week (1-7), starting on Monday"},"hour":{"name":"hour","type":"\u0005","is_mandatory":true,"title":"Hour of day - 0 to 23"},"id":{"name":"id","type":"\u0007","is_mandatory":true,"title":"Internal ID"},"updateTrack":{"name":"updateTrack","type":"\u0007","is_mandatory":true,"title":"Maintenance timing setting: canary (Earlier) or stable (Later)"}},"title":"GCP Cloud SQL Instance Settings Maintenance Window","private":true,"defaults":"day hour"},"gcp.project.sqlService.instance.settings.passwordValidationPolicy":{"id":"gcp.project.sqlService.instance.settings.passwordValidationPolicy","name":"gcp.project.sqlService.instance.settings.passwordValidationPolicy","fields":{"complexity":{"name":"complexity","type":"\u0007","is_mandatory":true,"title":"Password complexity"},"disallowUsernameSubstring":{"name":"disallowUsernameSubstring","type":"\u0004","is_mandatory":true,"title":"Whether username is forbidden as a part of the password"},"enabledPasswordPolicy":{"name":"enabledPasswordPolicy","type":"\u0004","is_mandatory":true,"title":"Whether the password policy is enabled"},"id":{"name":"id","type":"\u0007","is_mandatory":true,"title":"Internal ID"},"minLength":{"name":"minLength","type":"\u0005","is_mandatory":true,"title":"Minimum number of characters required in passwords"},"passwordChangeInterval":{"name":"passwordChangeInterval","type":"\u0007","is_mandatory":true,"title":"Minimum interval after which the password can be changed"},"reuseInterval":{"name":"reuseInterval","type":"\u0005","is_mandatory":true,"title":"Number of previous passwords that cannot be reused"}},"title":"GCP Cloud SQL Instance Settings Password Validation Policy","private":true,"defaults":"enabledPasswordPolicy"},"gcp.project.storageService":{"id":"gcp.project.storageService","name":"gcp.project.storageService","fields":{"buckets":{"name":"buckets","type":"\u0019\u001bgcp.project.storageService.bucket","title":"List all buckets"},"projectId":{"name":"projectId","type":"\u0007","is_mandatory":true,"title":"Project ID"}},"title":"GCP Cloud Storage","private":true},"gcp.project.storageService.bucket":{"id":"gcp.project.storageService.bucket","name":"gcp.project.storageService.bucket","fields":{"created":{"name":"created","type":"\t","is_mandatory":true,"title":"Creation timestamp"},"iamConfiguration":{"name":"iamConfiguration","type":"\n","is_mandatory":true,"title":"IAM configuration"},"iamPolicy":{"name":"iamPolicy","type":"\u0019\u001bgcp.resourcemanager.binding","title":"IAM policy"},"id":{"name":"id","type":"\u0007","is_mandatory":true,"title":"Bucket ID"},"labels":{"name":"labels","type":"\u001a\u0007\u0007","is_mandatory":true,"title":"User-defined labels"},"location":{"name":"location","type":"\u0007","is_mandatory":true,"title":"Bucket location"},"locationType":{"name":"locationType","type":"\u0007","is_mandatory":true,"title":"Bucket location type"},"name":{"name":"name","type":"\u0007","is_mandatory":true,"title":"Bucket name"},"projectId":{"name":"projectId","type":"\u0007","is_mandatory":true,"title":"Project ID"},"projectNumber":{"name":"projectNumber","type":"\u0007","is_mandatory":true,"title":"Project number"},"retentionPolicy":{"name":"retentionPolicy","type":"\n","is_mandatory":true,"title":"Retention policy"},"storageClass":{"name":"storageClass","type":"\u0007","is_mandatory":true,"title":"Default storage class"},"updated":{"name":"updated","type":"\t","is_mandatory":true,"title":"Update timestamp"}},"title":"GCP Cloud Storage Bucket","private":true,"defaults":"id"},"gcp.recommendation":{"id":"gcp.recommendation","name":"gcp.recommendation","fields":{"additionalImpact":{"name":"additionalImpact","type":"\u0019\n","is_mandatory":true,"title":"Optional set of additional impact that this recommendation may have"},"category":{"name":"category","type":"\u0007","is_mandatory":true,"title":"Category of Primary Impact"},"content":{"name":"content","type":"\n","is_mandatory":true,"title":"Describing recommended changes to resources"},"id":{"name":"id","type":"\u0007","is_mandatory":true,"title":"ID of recommendation"},"lastRefreshTime":{"name":"lastRefreshTime","type":"\t","is_mandatory":true,"title":"Last time this recommendation was refreshed"},"name":{"name":"name","type":"\u0007","is_mandatory":true,"title":"Description of the recommendation"},"primaryImpact":{"name":"primaryImpact","type":"\n","is_mandatory":true,"title":"The primary impact that this recommendation can have"},"priority":{"name":"priority","type":"\u0007","is_mandatory":true,"title":"Recommendation's priority"},"projectId":{"name":"projectId","type":"\u0007","is_mandatory":true,"title":"Project ID"},"recommender":{"name":"recommender","type":"\u0007","is_mandatory":true,"title":"Recommender"},"state":{"name":"state","type":"\n","is_mandatory":true,"title":"State and Metadata about Recommendation"},"zoneName":{"name":"zoneName","type":"\u0007","is_mandatory":true,"title":"Zone Name"}},"title":"GCP recommendation along with a suggested action"},"gcp.resourcemanager.binding":{"id":"gcp.resourcemanager.binding","name":"gcp.resourcemanager.binding","fields":{"id":{"name":"id","type":"\u0007","is_mandatory":true,"title":"Internal ID"},"members":{"name":"members","type":"\u0019\u0007","is_mandatory":true,"title":"Principals requesting access for a Google Cloud resource"},"role":{"name":"role","type":"\u0007","is_mandatory":true,"title":"Role assigned to the list of members or principals"}},"title":"GCP Resource Manager Binding","private":true},"gcp.service":{"id":"gcp.service","name":"gcp.service","fields":{"enabled":{"name":"enabled","type":"\u0004","title":"Checks if the service is enabled"},"name":{"name":"name","type":"\u0007","is_mandatory":true,"title":"Service name"},"parentName":{"name":"parentName","type":"\u0007","is_mandatory":true,"title":"Service parent name"},"projectId":{"name":"projectId","type":"\u0007","is_mandatory":true,"title":"Project ID"},"state":{"name":"state","type":"\u0007","is_mandatory":true,"title":"Service state"},"title":{"name":"title","type":"\u0007","is_mandatory":true,"title":"Service title"}},"title":"GCP Service","defaults":"name"},"gcp.sql":{"id":"gcp.project.sqlService","name":"gcp.project.sqlService","fields":{"instances":{"name":"instances","type":"\u0019\u001bgcp.project.sqlService.instance","title":"List of Cloud SQL instances in the current project"},"projectId":{"name":"projectId","type":"\u0007","is_mandatory":true,"title":"Project ID"}},"title":"GCP Cloud SQL Resources","private":true},"gcp.storage":{"id":"gcp.project.storageService","name":"gcp.project.storageService","fields":{"buckets":{"name":"buckets","type":"\u0019\u001bgcp.project.storageService.bucket","title":"List all buckets"},"projectId":{"name":"projectId","type":"\u0007","is_mandatory":true,"title":"Project ID"}},"title":"GCP Cloud Storage","private":true}}} \ No newline at end of file +{"resources":{"gcloud.compute":{"id":"gcp.project.computeService","name":"gcp.project.computeService","fields":{"backendServices":{"name":"backendServices","type":"\u0019\u001bgcp.project.computeService.backendService","title":"List of backend services"},"disks":{"name":"disks","type":"\u0019\u001bgcp.project.computeService.disk","title":"Google Compute Engine disks in a project"},"firewalls":{"name":"firewalls","type":"\u0019\u001bgcp.project.computeService.firewall","title":"Google Compute Engine firewalls in a project"},"images":{"name":"images","type":"\u0019\u001bgcp.project.computeService.image","title":"Google Compute Engine images in a project"},"instances":{"name":"instances","type":"\u0019\u001bgcp.project.computeService.instance","title":"Google Compute Engine instances in a project"},"machineTypes":{"name":"machineTypes","type":"\u0019\u001bgcp.project.computeService.machineType","title":"Google Compute Engine machine types in a project"},"networks":{"name":"networks","type":"\u0019\u001bgcp.project.computeService.network","title":"Google Compute Engine VPC Network in a project"},"projectId":{"name":"projectId","type":"\u0007","is_mandatory":true,"title":"Project ID"},"regions":{"name":"regions","type":"\u0019\u001bgcp.project.computeService.region","title":"Project Regions"},"routers":{"name":"routers","type":"\u0019\u001bgcp.project.computeService.router","title":"Cloud Routers in project"},"snapshots":{"name":"snapshots","type":"\u0019\u001bgcp.project.computeService.snapshot","title":"Google Compute Engine snapshots in a project"},"subnetworks":{"name":"subnetworks","type":"\u0019\u001bgcp.project.computeService.subnetwork","title":"Logical partition of a Virtual Private Cloud network"},"zones":{"name":"zones","type":"\u0019\u001bgcp.project.computeService.zone","title":"Project Zones"}},"title":"GCP Compute Engine","private":true},"gcloud.compute.instance":{"id":"gcp.project.computeService.instance","name":"gcp.project.computeService.instance","fields":{"canIpForward":{"name":"canIpForward","type":"\u0004","is_mandatory":true,"title":"Indicates if this instance is allowed to send and receive packets with non-matching destination or source IPs"},"confidentialInstanceConfig":{"name":"confidentialInstanceConfig","type":"\n","is_mandatory":true,"title":"Confidential instance configuration"},"cpuPlatform":{"name":"cpuPlatform","type":"\u0007","is_mandatory":true,"title":"The CPU platform used by this instance"},"created":{"name":"created","type":"\t","is_mandatory":true,"title":"Creation timestamp"},"deletionProtection":{"name":"deletionProtection","type":"\u0004","is_mandatory":true,"title":"Indicates if instance is protected against deletion"},"description":{"name":"description","type":"\u0007","is_mandatory":true,"title":"User-friendly name for this instance"},"disks":{"name":"disks","type":"\u0019\u001bgcp.project.computeService.attachedDisk","is_mandatory":true,"title":"Disks associated with this instance"},"enableDisplay":{"name":"enableDisplay","type":"\u0004","is_mandatory":true,"title":"Indicates if the instance has Display enabled"},"enableIntegrityMonitoring":{"name":"enableIntegrityMonitoring","type":"\u0004","is_mandatory":true,"title":"Indicates if Shielded Instance integrity monitoring is enabled"},"enableSecureBoot":{"name":"enableSecureBoot","type":"\u0004","is_mandatory":true,"title":"Indicates if Shielded Instance secure boot is enabled"},"enableVtpm":{"name":"enableVtpm","type":"\u0004","is_mandatory":true,"title":"Indicates if Shielded Instance vTPM is enabled"},"fingerprint":{"name":"fingerprint","type":"\u0007","is_mandatory":true,"title":"Instance Fingerprint"},"guestAccelerators":{"name":"guestAccelerators","type":"\u0019\n","is_mandatory":true,"title":"Attached list of accelerator cards"},"hostname":{"name":"hostname","type":"\u0007","is_mandatory":true,"title":"Hostname of the instance"},"id":{"name":"id","type":"\u0007","is_mandatory":true,"title":"Unique identifier for the resource"},"keyRevocationActionType":{"name":"keyRevocationActionType","type":"\u0007","is_mandatory":true,"title":"KeyRevocationActionType of the instance"},"labels":{"name":"labels","type":"\u001a\u0007\u0007","is_mandatory":true,"title":"User-provided labels"},"lastStartTimestamp":{"name":"lastStartTimestamp","type":"\t","is_mandatory":true,"title":"Last start timestamp"},"lastStopTimestamp":{"name":"lastStopTimestamp","type":"\t","is_mandatory":true,"title":"Last stop timestamp"},"lastSuspendedTimestamp":{"name":"lastSuspendedTimestamp","type":"\t","is_mandatory":true,"title":"Last suspended timestamp"},"machineType":{"name":"machineType","type":"\u001bgcp.project.computeService.machineType","title":"Machine type"},"metadata":{"name":"metadata","type":"\u001a\u0007\u0007","is_mandatory":true,"title":"Instance Metadata"},"minCpuPlatform":{"name":"minCpuPlatform","type":"\u0007","is_mandatory":true,"title":"Minimum CPU platform for the VM instance"},"name":{"name":"name","type":"\u0007","is_mandatory":true,"title":"User-friendly name for this instance"},"networkInterfaces":{"name":"networkInterfaces","type":"\u0019\n","is_mandatory":true,"title":"Network configurations for this instance"},"physicalHostResourceStatus":{"name":"physicalHostResourceStatus","type":"\u0007","is_mandatory":true,"title":"Resource status for physical host"},"privateIpv6GoogleAccess":{"name":"privateIpv6GoogleAccess","type":"\u0007","is_mandatory":true,"title":"private IPv6 google access type for the VM"},"projectId":{"name":"projectId","type":"\u0007","is_mandatory":true,"title":"Project ID"},"reservationAffinity":{"name":"reservationAffinity","type":"\n","is_mandatory":true,"title":"Reservations that this instance can consume from"},"resourcePolicies":{"name":"resourcePolicies","type":"\u0019\u0007","is_mandatory":true,"title":"Resource policies applied to this instance"},"scheduling":{"name":"scheduling","type":"\n","is_mandatory":true,"title":"Scheduling options"},"serviceAccounts":{"name":"serviceAccounts","type":"\u0019\u001bgcp.project.computeService.serviceaccount","is_mandatory":true,"title":"Service accounts authorized for this instance"},"sourceMachineImage":{"name":"sourceMachineImage","type":"\u0007","is_mandatory":true,"title":"Source machine image"},"startRestricted":{"name":"startRestricted","type":"\u0004","is_mandatory":true,"title":"Indicates if VM has been restricted for start because Compute Engine has detected suspicious activity"},"status":{"name":"status","type":"\u0007","is_mandatory":true,"title":"Instance status"},"statusMessage":{"name":"statusMessage","type":"\u0007","is_mandatory":true,"title":"Human-readable explanation of the status"},"tags":{"name":"tags","type":"\u0019\u0007","is_mandatory":true,"title":"Tags associated with this instance"},"totalEgressBandwidthTier":{"name":"totalEgressBandwidthTier","type":"\u0007","is_mandatory":true,"title":"Network performance configuration"},"zone":{"name":"zone","type":"\u001bgcp.project.computeService.zone","is_mandatory":true,"title":"Instance zone"}},"title":"GCP Compute Instances","private":true,"defaults":"name"},"gcloud.compute.serviceaccount":{"id":"gcp.project.computeService.serviceaccount","name":"gcp.project.computeService.serviceaccount","fields":{"email":{"name":"email","type":"\u0007","is_mandatory":true,"title":"Service account email address"},"scopes":{"name":"scopes","type":"\u0019\u0007","is_mandatory":true,"title":"Service account scopes"}},"title":"GCP Compute Service Account","private":true,"defaults":"email"},"gcloud.organization":{"id":"gcp.organization","name":"gcp.organization","fields":{"accessApprovalSettings":{"name":"accessApprovalSettings","type":"\u001bgcp.accessApprovalSettings","title":"Access approval settings"},"iamPolicy":{"name":"iamPolicy","type":"\u001bgcp.iamPolicy","title":"Organization IAM policy"},"id":{"name":"id","type":"\u0007","is_mandatory":true,"title":"Organization ID"},"lifecycleState":{"name":"lifecycleState","type":"\u0007","is_mandatory":true,"title":"Organization state"},"name":{"name":"name","type":"\u0007","is_mandatory":true,"title":"Organization name"}},"title":"GCP Cloud Organization","defaults":"id"},"gcloud.project":{"id":"gcp.project","name":"gcp.project","fields":{"accessApprovalSettings":{"name":"accessApprovalSettings","type":"\u001bgcp.accessApprovalSettings","title":"Access approval settings"},"apiKeys":{"name":"apiKeys","type":"\u0019\u001bgcp.project.apiKey","title":"API keys"},"bigquery":{"name":"bigquery","type":"\u001bgcp.project.bigqueryService","title":"GCP BigQuery Resources"},"cloudFunctions":{"name":"cloudFunctions","type":"\u0019\u001bgcp.project.cloudFunction","title":"GCP Cloud Functions"},"cloudRun":{"name":"cloudRun","type":"\u001bgcp.project.cloudRunService","title":"GCP Cloud Run Resources"},"commonInstanceMetadata":{"name":"commonInstanceMetadata","type":"\u001a\u0007\u0007","title":"Common instance metadata for the project"},"compute":{"name":"compute","type":"\u001bgcp.project.computeService","title":"GCP Compute Resources for the Project"},"createTime":{"name":"createTime","type":"\t","title":"Creation time"},"dataproc":{"name":"dataproc","type":"\u001bgcp.project.dataprocService","title":"GCP Dataproc resources"},"dns":{"name":"dns","type":"\u001bgcp.project.dnsService","title":"GCP Cloud DNS"},"essentialContacts":{"name":"essentialContacts","type":"\u0019\u001bgcp.essentialContact","title":"GCP Contacts for the project"},"gke":{"name":"gke","type":"\u001bgcp.project.gkeService","title":"GCP GKE resources"},"iam":{"name":"iam","type":"\u001bgcp.project.iamService","title":"GCP IAM Resources"},"iamPolicy":{"name":"iamPolicy","type":"\u001bgcp.iamPolicy","title":"IAM policy"},"id":{"name":"id","type":"\u0007","title":"Unique, user-assigned id of the project"},"kms":{"name":"kms","type":"\u001bgcp.project.kmsService","title":"KMS-related resources"},"labels":{"name":"labels","type":"\u001a\u0007\u0007","title":"The labels associated with this project"},"lifecycleState":{"name":"lifecycleState","type":"\u0007","title":"Deprecated. Use `state` instead."},"logging":{"name":"logging","type":"\u001bgcp.project.loggingservice","title":"Logging resources"},"monitoring":{"name":"monitoring","type":"\u001bgcp.project.monitoringService","title":"Monitoring resources"},"name":{"name":"name","type":"\u0007","title":"The unique resource name"},"number":{"name":"number","type":"\u0007","title":"Deprecated. Use `id` instead."},"pubsub":{"name":"pubsub","type":"\u001bgcp.project.pubsubService","title":"GCP Pub/Sub-related Resources"},"recommendations":{"name":"recommendations","type":"\u0019\u001bgcp.recommendation","title":"List of recommendations"},"services":{"name":"services","type":"\u0019\u001bgcp.service","title":"List of available and enabled services for project"},"sql":{"name":"sql","type":"\u001bgcp.project.sqlService","title":"GCP Cloud SQL Resources"},"state":{"name":"state","type":"\u0007","title":"The project lifecycle state"},"storage":{"name":"storage","type":"\u001bgcp.project.storageService","title":"GCP Storage resources"}},"title":"Google Cloud Platform Project","defaults":"name"},"gcloud.resourcemanager.binding":{"id":"gcp.iamPolicy.binding","name":"gcp.iamPolicy.binding","fields":{"id":{"name":"id","type":"\u0007","is_mandatory":true,"title":"Internal ID"},"members":{"name":"members","type":"\u0019\u0007","is_mandatory":true,"title":"Principals requesting access for a Google Cloud resource"},"role":{"name":"role","type":"\u0007","is_mandatory":true,"title":"Role assigned to the list of members or principals"}},"title":"GCP Resource Manager Binding","private":true},"gcloud.sql":{"id":"gcp.project.sqlService","name":"gcp.project.sqlService","fields":{"instances":{"name":"instances","type":"\u0019\u001bgcp.project.sqlService.instance","title":"List of Cloud SQL instances in the current project"},"projectId":{"name":"projectId","type":"\u0007","is_mandatory":true,"title":"Project ID"}},"title":"GCP Cloud SQL Resources","private":true},"gcloud.sql.instance":{"id":"gcp.project.sqlService.instance","name":"gcp.project.sqlService.instance","fields":{"availableMaintenanceVersions":{"name":"availableMaintenanceVersions","type":"\u0019\u0007","is_mandatory":true,"title":"All maintenance versions applicable on the instance"},"backendType":{"name":"backendType","type":"\u0007","is_mandatory":true,"title":"Backend type"},"connectionName":{"name":"connectionName","type":"\u0007","is_mandatory":true,"title":"Connection name of the instance used in connection strings"},"created":{"name":"created","type":"\t","is_mandatory":true,"title":"Creation timestamp"},"currentDiskSize":{"name":"currentDiskSize","type":"\u0005","is_mandatory":true,"title":"Current disk usage of the instance in bytes. This is deprecated; use monitoring should be used instead."},"databaseInstalledVersion":{"name":"databaseInstalledVersion","type":"\u0007","is_mandatory":true,"title":"Current database version running on the instance"},"databaseVersion":{"name":"databaseVersion","type":"\u0007","is_mandatory":true,"title":"Database engine type and version"},"databases":{"name":"databases","type":"\u0019\u001bgcp.project.sqlService.instance.database","title":"List of the databases in the current SQL instance"},"diskEncryptionConfiguration":{"name":"diskEncryptionConfiguration","type":"\n","is_mandatory":true,"title":"Disk encryption configuration"},"diskEncryptionStatus":{"name":"diskEncryptionStatus","type":"\n","is_mandatory":true,"title":"Disk encryption status"},"failoverReplica":{"name":"failoverReplica","type":"\n","is_mandatory":true,"title":"Name and status of the failover replica"},"gceZone":{"name":"gceZone","type":"\u0007","is_mandatory":true,"title":"Compute Engine zone that the instance is currently serviced from"},"instanceType":{"name":"instanceType","type":"\u0007","is_mandatory":true,"title":"Instance type"},"ipAddresses":{"name":"ipAddresses","type":"\u0019\u001bgcp.project.sqlService.instance.ipMapping","is_mandatory":true,"title":"Assigned IP addresses"},"maintenanceVersion":{"name":"maintenanceVersion","type":"\u0007","is_mandatory":true,"title":"Current software version on the instance"},"masterInstanceName":{"name":"masterInstanceName","type":"\u0007","is_mandatory":true,"title":"Name of the instance that will act as primary in the replica"},"maxDiskSize":{"name":"maxDiskSize","type":"\u0005","is_mandatory":true,"title":"Maximum disk size in bytes"},"name":{"name":"name","type":"\u0007","is_mandatory":true,"title":"Instance name"},"project":{"name":"project","type":"\u0007","is_mandatory":true,"title":"This is deprecated; use projectId instead."},"projectId":{"name":"projectId","type":"\u0007","is_mandatory":true,"title":"Project ID"},"region":{"name":"region","type":"\u0007","is_mandatory":true,"title":"Region"},"replicaNames":{"name":"replicaNames","type":"\u0019\u0007","is_mandatory":true,"title":"Replicas"},"serviceAccountEmailAddress":{"name":"serviceAccountEmailAddress","type":"\u0007","is_mandatory":true,"title":"Service account email address"},"settings":{"name":"settings","type":"\u001bgcp.project.sqlService.instance.settings","is_mandatory":true,"title":"Settings"},"state":{"name":"state","type":"\u0007","is_mandatory":true,"title":"Instance state"}},"title":"GCP Cloud SQL Instance","private":true,"defaults":"name"},"gcloud.storage":{"id":"gcp.project.storageService","name":"gcp.project.storageService","fields":{"buckets":{"name":"buckets","type":"\u0019\u001bgcp.project.storageService.bucket","title":"List all buckets"},"projectId":{"name":"projectId","type":"\u0007","is_mandatory":true,"title":"Project ID"}},"title":"GCP Cloud Storage","private":true},"gcloud.storage.bucket":{"id":"gcp.project.storageService.bucket","name":"gcp.project.storageService.bucket","fields":{"created":{"name":"created","type":"\t","is_mandatory":true,"title":"Creation timestamp"},"iamConfiguration":{"name":"iamConfiguration","type":"\n","is_mandatory":true,"title":"IAM configuration"},"iamPolicy":{"name":"iamPolicy","type":"\u001bgcp.iamPolicy","title":"IAM policy"},"id":{"name":"id","type":"\u0007","is_mandatory":true,"title":"Bucket ID"},"labels":{"name":"labels","type":"\u001a\u0007\u0007","is_mandatory":true,"title":"User-defined labels"},"location":{"name":"location","type":"\u0007","is_mandatory":true,"title":"Bucket location"},"locationType":{"name":"locationType","type":"\u0007","is_mandatory":true,"title":"Bucket location type"},"name":{"name":"name","type":"\u0007","is_mandatory":true,"title":"Bucket name"},"projectId":{"name":"projectId","type":"\u0007","is_mandatory":true,"title":"Project ID"},"projectNumber":{"name":"projectNumber","type":"\u0007","is_mandatory":true,"title":"Project number"},"retentionPolicy":{"name":"retentionPolicy","type":"\n","is_mandatory":true,"title":"Retention policy"},"storageClass":{"name":"storageClass","type":"\u0007","is_mandatory":true,"title":"Default storage class"},"updated":{"name":"updated","type":"\t","is_mandatory":true,"title":"Update timestamp"}},"title":"GCP Cloud Storage Bucket","private":true,"defaults":"id"},"gcp.accessApprovalSettings":{"id":"gcp.accessApprovalSettings","name":"gcp.accessApprovalSettings","fields":{"activeKeyVersion":{"name":"activeKeyVersion","type":"\u0007","is_mandatory":true,"title":"Asymmetric crypto key version to use for signing approval requests"},"ancestorHasActiveKeyVersion":{"name":"ancestorHasActiveKeyVersion","type":"\u0004","is_mandatory":true,"title":"Whether an ancestor of this project or folder has set active key version (unset for organizations since organizations do not have ancestors)"},"enrolledAncestor":{"name":"enrolledAncestor","type":"\u0004","is_mandatory":true,"title":"Whether at least one service is enrolled for access approval in one or more ancestors of the project or folder (unset for organizations since organizations do not have ancestors)"},"enrolledServices":{"name":"enrolledServices","type":"\u0019\n","is_mandatory":true,"title":"List of Google Cloud services for which the given resource has access approval enrolled"},"invalidKeyVersion":{"name":"invalidKeyVersion","type":"\u0004","is_mandatory":true,"title":"Whether there is some configuration issue with the active key version configured at this level of the resource hierarchy"},"notificationEmails":{"name":"notificationEmails","type":"\u0019\u0007","is_mandatory":true,"title":"List of email addresses to which notifications relating to approval requests should be sent"},"resourcePath":{"name":"resourcePath","type":"\u0007","is_mandatory":true,"title":"Resource path"}},"title":"GCP access approval settings","private":true},"gcp.bigquery":{"id":"gcp.project.bigqueryService","name":"gcp.project.bigqueryService","fields":{"datasets":{"name":"datasets","type":"\u0019\u001bgcp.project.bigqueryService.dataset","title":"List of BigQuery datasets"},"projectId":{"name":"projectId","type":"\u0007","is_mandatory":true,"title":"Project ID"}},"title":"GCP BigQuery Resources","private":true},"gcp.compute":{"id":"gcp.project.computeService","name":"gcp.project.computeService","fields":{"backendServices":{"name":"backendServices","type":"\u0019\u001bgcp.project.computeService.backendService","title":"List of backend services"},"disks":{"name":"disks","type":"\u0019\u001bgcp.project.computeService.disk","title":"Google Compute Engine disks in a project"},"firewalls":{"name":"firewalls","type":"\u0019\u001bgcp.project.computeService.firewall","title":"Google Compute Engine firewalls in a project"},"images":{"name":"images","type":"\u0019\u001bgcp.project.computeService.image","title":"Google Compute Engine images in a project"},"instances":{"name":"instances","type":"\u0019\u001bgcp.project.computeService.instance","title":"Google Compute Engine instances in a project"},"machineTypes":{"name":"machineTypes","type":"\u0019\u001bgcp.project.computeService.machineType","title":"Google Compute Engine machine types in a project"},"networks":{"name":"networks","type":"\u0019\u001bgcp.project.computeService.network","title":"Google Compute Engine VPC Network in a project"},"projectId":{"name":"projectId","type":"\u0007","is_mandatory":true,"title":"Project ID"},"regions":{"name":"regions","type":"\u0019\u001bgcp.project.computeService.region","title":"Project Regions"},"routers":{"name":"routers","type":"\u0019\u001bgcp.project.computeService.router","title":"Cloud Routers in project"},"snapshots":{"name":"snapshots","type":"\u0019\u001bgcp.project.computeService.snapshot","title":"Google Compute Engine snapshots in a project"},"subnetworks":{"name":"subnetworks","type":"\u0019\u001bgcp.project.computeService.subnetwork","title":"Logical partition of a Virtual Private Cloud network"},"zones":{"name":"zones","type":"\u0019\u001bgcp.project.computeService.zone","title":"Project Zones"}},"title":"GCP Compute Engine","private":true},"gcp.dns":{"id":"gcp.project.dnsService","name":"gcp.project.dnsService","fields":{"managedZones":{"name":"managedZones","type":"\u0019\u001bgcp.project.dnsService.managedzone","title":"Cloud DNS managed zone in project"},"policies":{"name":"policies","type":"\u0019\u001bgcp.project.dnsService.policy","title":"Cloud DNS rules in project"},"projectId":{"name":"projectId","type":"\u0007","is_mandatory":true,"title":"Project ID"}},"title":"GCP Cloud DNS","private":true},"gcp.essentialContact":{"id":"gcp.essentialContact","name":"gcp.essentialContact","fields":{"email":{"name":"email","type":"\u0007","is_mandatory":true,"title":"Email address to send notifications to"},"languageTag":{"name":"languageTag","type":"\u0007","is_mandatory":true,"title":"Preferred language for notifications, as a ISO 639-1 language code"},"notificationCategories":{"name":"notificationCategories","type":"\u0019\u0007","is_mandatory":true,"title":"Categories of notifications that the contact will receive communication for"},"resourcePath":{"name":"resourcePath","type":"\u0007","is_mandatory":true,"title":"Full resource path"},"validated":{"name":"validated","type":"\t","is_mandatory":true,"title":"Last time the validation state was updated"},"validationState":{"name":"validationState","type":"\u0007","is_mandatory":true,"title":"Validity of the contact"}},"title":"GCP Contact","private":true,"defaults":"email notificationCategories"},"gcp.iamPolicy":{"id":"gcp.iamPolicy","name":"gcp.iamPolicy","fields":{"auditConfigs":{"name":"auditConfigs","type":"\u0019\n","is_mandatory":true,"title":"Cloud audit logging configuration"},"bindings":{"name":"bindings","type":"\u0019\u001bgcp.iamPolicy.binding","is_mandatory":true,"title":"List of bindings associating lists of members, or principals, to roles"},"id":{"name":"id","type":"\u0007","is_mandatory":true,"title":"Internal ID"},"version":{"name":"version","type":"\u0005","is_mandatory":true,"title":"Format of the policy"}},"title":"GCP IAM policy","private":true,"defaults":"bindings"},"gcp.iamPolicy.binding":{"id":"gcp.iamPolicy.binding","name":"gcp.iamPolicy.binding","fields":{"id":{"name":"id","type":"\u0007","is_mandatory":true,"title":"Internal ID"},"members":{"name":"members","type":"\u0019\u0007","is_mandatory":true,"title":"Principals requesting access for a Google Cloud resource"},"role":{"name":"role","type":"\u0007","is_mandatory":true,"title":"Role assigned to the list of members or principals"}},"title":"GCP Resource Manager Binding","private":true},"gcp.organization":{"id":"gcp.organization","name":"gcp.organization","fields":{"accessApprovalSettings":{"name":"accessApprovalSettings","type":"\u001bgcp.accessApprovalSettings","title":"Access approval settings"},"iamPolicy":{"name":"iamPolicy","type":"\u001bgcp.iamPolicy","title":"Organization IAM policy"},"id":{"name":"id","type":"\u0007","is_mandatory":true,"title":"Organization ID"},"lifecycleState":{"name":"lifecycleState","type":"\u0007","is_mandatory":true,"title":"Organization state"},"name":{"name":"name","type":"\u0007","is_mandatory":true,"title":"Organization name"}},"title":"GCP Cloud Organization","defaults":"id"},"gcp.project":{"id":"gcp.project","name":"gcp.project","fields":{"accessApprovalSettings":{"name":"accessApprovalSettings","type":"\u001bgcp.accessApprovalSettings","title":"Access approval settings"},"apiKeys":{"name":"apiKeys","type":"\u0019\u001bgcp.project.apiKey","title":"API keys"},"bigquery":{"name":"bigquery","type":"\u001bgcp.project.bigqueryService","title":"GCP BigQuery Resources"},"cloudFunctions":{"name":"cloudFunctions","type":"\u0019\u001bgcp.project.cloudFunction","title":"GCP Cloud Functions"},"cloudRun":{"name":"cloudRun","type":"\u001bgcp.project.cloudRunService","title":"GCP Cloud Run Resources"},"commonInstanceMetadata":{"name":"commonInstanceMetadata","type":"\u001a\u0007\u0007","title":"Common instance metadata for the project"},"compute":{"name":"compute","type":"\u001bgcp.project.computeService","title":"GCP Compute Resources for the Project"},"createTime":{"name":"createTime","type":"\t","title":"Creation time"},"dataproc":{"name":"dataproc","type":"\u001bgcp.project.dataprocService","title":"GCP Dataproc resources"},"dns":{"name":"dns","type":"\u001bgcp.project.dnsService","title":"GCP Cloud DNS"},"essentialContacts":{"name":"essentialContacts","type":"\u0019\u001bgcp.essentialContact","title":"GCP Contacts for the project"},"gke":{"name":"gke","type":"\u001bgcp.project.gkeService","title":"GCP GKE resources"},"iam":{"name":"iam","type":"\u001bgcp.project.iamService","title":"GCP IAM Resources"},"iamPolicy":{"name":"iamPolicy","type":"\u001bgcp.iamPolicy","title":"IAM policy"},"id":{"name":"id","type":"\u0007","title":"Unique, user-assigned id of the project"},"kms":{"name":"kms","type":"\u001bgcp.project.kmsService","title":"KMS-related resources"},"labels":{"name":"labels","type":"\u001a\u0007\u0007","title":"The labels associated with this project"},"lifecycleState":{"name":"lifecycleState","type":"\u0007","title":"Deprecated. Use `state` instead."},"logging":{"name":"logging","type":"\u001bgcp.project.loggingservice","title":"Logging resources"},"monitoring":{"name":"monitoring","type":"\u001bgcp.project.monitoringService","title":"Monitoring resources"},"name":{"name":"name","type":"\u0007","title":"The unique resource name"},"number":{"name":"number","type":"\u0007","title":"Deprecated. Use `id` instead."},"pubsub":{"name":"pubsub","type":"\u001bgcp.project.pubsubService","title":"GCP Pub/Sub-related Resources"},"recommendations":{"name":"recommendations","type":"\u0019\u001bgcp.recommendation","title":"List of recommendations"},"services":{"name":"services","type":"\u0019\u001bgcp.service","title":"List of available and enabled services for project"},"sql":{"name":"sql","type":"\u001bgcp.project.sqlService","title":"GCP Cloud SQL Resources"},"state":{"name":"state","type":"\u0007","title":"The project lifecycle state"},"storage":{"name":"storage","type":"\u001bgcp.project.storageService","title":"GCP Storage resources"}},"title":"Google Cloud Platform Project","defaults":"name"},"gcp.project.apiKey":{"id":"gcp.project.apiKey","name":"gcp.project.apiKey","fields":{"annotations":{"name":"annotations","type":"\u001a\u0007\u0007","is_mandatory":true,"title":"Annotations"},"created":{"name":"created","type":"\t","is_mandatory":true,"title":"Creation timestamp"},"deleted":{"name":"deleted","type":"\t","is_mandatory":true,"title":"Deletion timestamp"},"id":{"name":"id","type":"\u0007","is_mandatory":true,"title":"The ID of the key"},"keyString":{"name":"keyString","type":"\u0007","is_mandatory":true,"title":"Encrypted and signed value held by this key"},"name":{"name":"name","type":"\u0007","is_mandatory":true,"title":"Human-readable display name of this key"},"projectId":{"name":"projectId","type":"\u0007","is_mandatory":true,"title":"Project ID"},"resourcePath":{"name":"resourcePath","type":"\u0007","is_mandatory":true,"title":"Full resource path"},"restrictions":{"name":"restrictions","type":"\u001bgcp.project.apiKey.restrictions","is_mandatory":true,"title":"API key restrictions"},"updated":{"name":"updated","type":"\t","is_mandatory":true,"title":"Update timestamp"}},"title":"GCP Project API key","private":true,"defaults":"name"},"gcp.project.apiKey.restrictions":{"id":"gcp.project.apiKey.restrictions","name":"gcp.project.apiKey.restrictions","fields":{"androidKeyRestrictions":{"name":"androidKeyRestrictions","type":"\n","is_mandatory":true,"title":"The Android apps that are allowed to use the key"},"apiTargets":{"name":"apiTargets","type":"\u0019\n","is_mandatory":true,"title":"A restriction for a specific service and optionally one or more specific methods"},"browserKeyRestrictions":{"name":"browserKeyRestrictions","type":"\n","is_mandatory":true,"title":"The HTTP referrers that are allowed to use the key"},"iosKeyRestrictions":{"name":"iosKeyRestrictions","type":"\n","is_mandatory":true,"title":"The iOS apps that are allowed to use the key"},"parentResourcePath":{"name":"parentResourcePath","type":"\u0007","is_mandatory":true,"title":"Parent resource path"},"serverKeyRestrictions":{"name":"serverKeyRestrictions","type":"\n","is_mandatory":true,"title":"The IP addresses that are allowed to use the key"}},"title":"GCP Project API key restrictions","private":true},"gcp.project.bigqueryService":{"id":"gcp.project.bigqueryService","name":"gcp.project.bigqueryService","fields":{"datasets":{"name":"datasets","type":"\u0019\u001bgcp.project.bigqueryService.dataset","title":"List of BigQuery datasets"},"projectId":{"name":"projectId","type":"\u0007","is_mandatory":true,"title":"Project ID"}},"title":"GCP BigQuery Resources","private":true},"gcp.project.bigqueryService.dataset":{"id":"gcp.project.bigqueryService.dataset","name":"gcp.project.bigqueryService.dataset","fields":{"access":{"name":"access","type":"\u0019\u001bgcp.project.bigqueryService.dataset.accessEntry","is_mandatory":true,"title":"Access permissions"},"created":{"name":"created","type":"\t","is_mandatory":true,"title":"Creation timestamp"},"description":{"name":"description","type":"\u0007","is_mandatory":true,"title":"User-friendly description of this dataset"},"id":{"name":"id","type":"\u0007","is_mandatory":true,"title":"Dataset ID"},"kmsName":{"name":"kmsName","type":"\u0007","is_mandatory":true,"title":"Cloud KMS encryption key that will be used to protect BigQuery table"},"labels":{"name":"labels","type":"\u001a\u0007\u0007","is_mandatory":true,"title":"User-provided labels"},"location":{"name":"location","type":"\u0007","is_mandatory":true,"title":"Geo location of the dataset"},"models":{"name":"models","type":"\u0019\u001bgcp.project.bigqueryService.model","title":"Returns models in the Dataset"},"modified":{"name":"modified","type":"\t","is_mandatory":true,"title":"Modified timestamp"},"name":{"name":"name","type":"\u0007","is_mandatory":true,"title":"User-friendly name for this dataset"},"projectId":{"name":"projectId","type":"\u0007","is_mandatory":true,"title":"Project ID"},"routines":{"name":"routines","type":"\u0019\u001bgcp.project.bigqueryService.routine","title":"Returns routines in the Dataset"},"tables":{"name":"tables","type":"\u0019\u001bgcp.project.bigqueryService.table","title":"Returns tables in the Dataset"},"tags":{"name":"tags","type":"\u001a\u0007\u0007","is_mandatory":true,"title":"Tags associated with this dataset"}},"title":"GCP BigQuery dataset","private":true,"defaults":"name"},"gcp.project.bigqueryService.dataset.accessEntry":{"id":"gcp.project.bigqueryService.dataset.accessEntry","name":"gcp.project.bigqueryService.dataset.accessEntry","fields":{"datasetId":{"name":"datasetId","type":"\u0007","is_mandatory":true,"title":"Dataset ID"},"datasetRef":{"name":"datasetRef","type":"\n","is_mandatory":true,"title":"Resources within a dataset granted access"},"entity":{"name":"entity","type":"\u0007","is_mandatory":true,"title":"Entity (individual or group) granted access"},"entityType":{"name":"entityType","type":"\u0007","is_mandatory":true,"title":"Type of the entity"},"id":{"name":"id","type":"\u0007","is_mandatory":true,"title":"Internal ID"},"role":{"name":"role","type":"\u0007","is_mandatory":true,"title":"Role of the entity"},"routineRef":{"name":"routineRef","type":"\n","is_mandatory":true,"title":"Routine granted access (only UDF currently supported)"},"viewRef":{"name":"viewRef","type":"\n","is_mandatory":true,"title":"View granted access (entityType must be ViewEntity)"}},"title":"GCP BigQuery dataset access entry","private":true},"gcp.project.bigqueryService.model":{"id":"gcp.project.bigqueryService.model","name":"gcp.project.bigqueryService.model","fields":{"created":{"name":"created","type":"\t","is_mandatory":true,"title":"Creation timestamp"},"datasetId":{"name":"datasetId","type":"\u0007","is_mandatory":true,"title":"Dataset ID"},"description":{"name":"description","type":"\u0007","is_mandatory":true,"title":"User-friendly description of the model"},"expirationTime":{"name":"expirationTime","type":"\t","is_mandatory":true,"title":"Expiration time of the model"},"id":{"name":"id","type":"\u0007","is_mandatory":true,"title":"Model ID"},"kmsName":{"name":"kmsName","type":"\u0007","is_mandatory":true,"title":"Cloud KMS encryption key that will be used to protect BigQuery model"},"labels":{"name":"labels","type":"\u001a\u0007\u0007","is_mandatory":true,"title":"User-provided labels"},"location":{"name":"location","type":"\u0007","is_mandatory":true,"title":"Geographic location"},"modified":{"name":"modified","type":"\t","is_mandatory":true,"title":"Modified timestamp"},"name":{"name":"name","type":"\u0007","is_mandatory":true,"title":"User-friendly name of the model"},"projectId":{"name":"projectId","type":"\u0007","is_mandatory":true,"title":"Project ID"},"type":{"name":"type","type":"\u0007","is_mandatory":true,"title":"Type of the mode"}},"title":"GCP BigQuery ML model","private":true,"defaults":"id"},"gcp.project.bigqueryService.routine":{"id":"gcp.project.bigqueryService.routine","name":"gcp.project.bigqueryService.routine","fields":{"created":{"name":"created","type":"\t","is_mandatory":true,"title":"Creation timestamp"},"datasetId":{"name":"datasetId","type":"\u0007","is_mandatory":true,"title":"Dataset ID"},"description":{"name":"description","type":"\u0007","is_mandatory":true,"title":"User-friendly description of the routine"},"id":{"name":"id","type":"\u0007","is_mandatory":true,"title":"Routine ID"},"language":{"name":"language","type":"\u0007","is_mandatory":true,"title":"Language of the routine, such as SQL or JAVASCRIPT"},"modified":{"name":"modified","type":"\t","is_mandatory":true,"title":"Modified timestamp"},"projectId":{"name":"projectId","type":"\u0007","is_mandatory":true,"title":"Project ID"},"type":{"name":"type","type":"\u0007","is_mandatory":true,"title":"Type of routine"}},"title":"GCP BigQuery routine","private":true,"defaults":"id"},"gcp.project.bigqueryService.table":{"id":"gcp.project.bigqueryService.table","name":"gcp.project.bigqueryService.table","fields":{"clusteringFields":{"name":"clusteringFields","type":"\n","is_mandatory":true,"title":"Data clustering configuration"},"created":{"name":"created","type":"\t","is_mandatory":true,"title":"Creation timestamp"},"datasetId":{"name":"datasetId","type":"\u0007","is_mandatory":true,"title":"Dataset ID"},"description":{"name":"description","type":"\u0007","is_mandatory":true,"title":"User-friendly description of the table"},"expirationTime":{"name":"expirationTime","type":"\t","is_mandatory":true,"title":"Time when this table expires"},"externalDataConfig":{"name":"externalDataConfig","type":"\n","is_mandatory":true,"title":"Information about table stored outside of BigQuery."},"id":{"name":"id","type":"\u0007","is_mandatory":true,"title":"Table ID"},"kmsName":{"name":"kmsName","type":"\u0007","is_mandatory":true,"title":"Cloud KMS encryption key that will be used to protect BigQuery table"},"labels":{"name":"labels","type":"\u001a\u0007\u0007","is_mandatory":true,"title":"User-provided labels"},"location":{"name":"location","type":"\u0007","is_mandatory":true,"title":"Location of the table"},"materializedView":{"name":"materializedView","type":"\n","is_mandatory":true,"title":"Information for materialized views"},"modified":{"name":"modified","type":"\t","is_mandatory":true,"title":"Modified timestamp"},"name":{"name":"name","type":"\u0007","is_mandatory":true,"title":"The user-friendly name for the table"},"numBytes":{"name":"numBytes","type":"\u0005","is_mandatory":true,"title":"Size of the table in bytes"},"numLongTermBytes":{"name":"numLongTermBytes","type":"\u0005","is_mandatory":true,"title":"Number of bytes in the table considered \"long-term storage\" for reduced billing purposes"},"numRows":{"name":"numRows","type":"\u0005","is_mandatory":true,"title":"Number of rows of data in this table"},"projectId":{"name":"projectId","type":"\u0007","is_mandatory":true,"title":"Project ID"},"rangePartitioning":{"name":"rangePartitioning","type":"\n","is_mandatory":true,"title":"Integer-range-based partitioning on a table"},"requirePartitionFilter":{"name":"requirePartitionFilter","type":"\u0004","is_mandatory":true,"title":"Indicates if queries that reference this table must specify a partition filter"},"schema":{"name":"schema","type":"\u0019\n","is_mandatory":true,"title":"Table schema"},"snapshotTime":{"name":"snapshotTime","type":"\t","is_mandatory":true,"title":"Indicates when the base table was snapshot"},"timePartitioning":{"name":"timePartitioning","type":"\n","is_mandatory":true,"title":"Time-based date partitioning on a table"},"type":{"name":"type","type":"\u0007","is_mandatory":true,"title":"Table Type"},"useLegacySQL":{"name":"useLegacySQL","type":"\u0004","is_mandatory":true,"title":"Indicates if Legacy SQL is used for the view query"},"viewQuery":{"name":"viewQuery","type":"\u0007","is_mandatory":true,"title":"Query to use for a logical view"}},"title":"GCP BigQuery table","private":true,"defaults":"id"},"gcp.project.cloudFunction":{"id":"gcp.project.cloudFunction","name":"gcp.project.cloudFunction","fields":{"availableMemoryMb":{"name":"availableMemoryMb","type":"\u0005","is_mandatory":true,"title":"Amount of memory in MB available for a function"},"buildEnvVars":{"name":"buildEnvVars","type":"\u001a\u0007\u0007","is_mandatory":true,"title":"Build environment variables that are available during build time"},"buildId":{"name":"buildId","type":"\u0007","is_mandatory":true,"title":"Cloud Build ID of the latest successful deployment of the function"},"buildName":{"name":"buildName","type":"\u0007","is_mandatory":true,"title":"Cloud Build name of the function deployment"},"buildWorkerPool":{"name":"buildWorkerPool","type":"\u0007","is_mandatory":true,"title":"Name of the Cloud Build custom WorkerPool that should be used to build the function"},"description":{"name":"description","type":"\u0007","is_mandatory":true,"title":"Cloud Function description"},"dockerRegistry":{"name":"dockerRegistry","type":"\u0007","is_mandatory":true,"title":"Docker registry to use for this deployment"},"dockerRepository":{"name":"dockerRepository","type":"\u0007","is_mandatory":true,"title":"User-managed repository created in Artifact Registry"},"egressSettings":{"name":"egressSettings","type":"\u0007","is_mandatory":true,"title":"Egress settings for the connector controlling what traffic is diverted"},"entryPoint":{"name":"entryPoint","type":"\u0007","is_mandatory":true,"title":"Name of the function (as defined in source code) that is executed"},"envVars":{"name":"envVars","type":"\u001a\u0007\u0007","is_mandatory":true,"title":"Environment variables that are available during function execution"},"eventTrigger":{"name":"eventTrigger","type":"\n","is_mandatory":true,"title":"Source that fires events in response to a condition in another service"},"httpsTrigger":{"name":"httpsTrigger","type":"\n","is_mandatory":true,"title":"HTTPS endpoint of source that can be triggered via URL"},"ingressSettings":{"name":"ingressSettings","type":"\u0007","is_mandatory":true,"title":"Ingress settings for the function controlling what traffic can reach"},"kmsKeyName":{"name":"kmsKeyName","type":"\u0007","is_mandatory":true,"title":"Resource name of a KMS crypto key used to encrypt/decrypt function resources"},"labels":{"name":"labels","type":"\u001a\u0007\u0007","is_mandatory":true,"title":"Labels associated with this cloud function"},"maxInstances":{"name":"maxInstances","type":"\u0005","is_mandatory":true,"title":"Maximum number of function instances that may coexist at a given time"},"minInstances":{"name":"minInstances","type":"\u0005","is_mandatory":true,"title":"Lower bound for the number of function instances that may coexist at a given time"},"name":{"name":"name","type":"\u0007","is_mandatory":true,"title":"Cloud Function name"},"network":{"name":"network","type":"\u0007","is_mandatory":true,"title":"VPC network that this cloud function can connect to"},"projectId":{"name":"projectId","type":"\u0007","is_mandatory":true,"title":"Project ID"},"runtime":{"name":"runtime","type":"\u0007","is_mandatory":true,"title":"Runtime in which to run the function"},"secretEnvVars":{"name":"secretEnvVars","type":"\u001a\u0007\n","is_mandatory":true,"title":"Secret environment variables"},"secretVolumes":{"name":"secretVolumes","type":"\u0019\n","is_mandatory":true,"title":"Secret volumes"},"serviceAccountEmail":{"name":"serviceAccountEmail","type":"\u0007","is_mandatory":true,"title":"Email of the function's service account"},"sourceArchiveUrl":{"name":"sourceArchiveUrl","type":"\u0007","is_mandatory":true,"title":"Location of the archive with the function's source code"},"sourceRepository":{"name":"sourceRepository","type":"\n","is_mandatory":true,"title":"Repository reference for the function's source code"},"sourceUploadUrl":{"name":"sourceUploadUrl","type":"\u0007","is_mandatory":true,"title":"Location of the upload with the function's source code"},"status":{"name":"status","type":"\u0007","is_mandatory":true,"title":"Status of the function deployment"},"timeout":{"name":"timeout","type":"\t","is_mandatory":true,"title":"Function execution timeout"},"updated":{"name":"updated","type":"\t","is_mandatory":true,"title":"Update timestamp"},"versionId":{"name":"versionId","type":"\u0005","is_mandatory":true,"title":"Version identifier of the cloud function"},"vpcConnector":{"name":"vpcConnector","type":"\u0007","is_mandatory":true,"title":"VPC network connector that this cloud function can connect to"}},"title":"GCP Cloud Function","private":true},"gcp.project.cloudRunService":{"id":"gcp.project.cloudRunService","name":"gcp.project.cloudRunService","fields":{"jobs":{"name":"jobs","type":"\u0019\u001bgcp.project.cloudRunService.job","title":"List of jobs"},"operations":{"name":"operations","type":"\u0019\u001bgcp.project.cloudRunService.operation","title":"List of operations"},"projectId":{"name":"projectId","type":"\u0007","is_mandatory":true,"title":"Project ID"},"regions":{"name":"regions","type":"\u0019\u0007","title":"List of available regions"},"services":{"name":"services","type":"\u0019\u001bgcp.project.cloudRunService.service","title":"List of services"}},"title":"GCP Cloud Run resources","private":true},"gcp.project.cloudRunService.condition":{"id":"gcp.project.cloudRunService.condition","name":"gcp.project.cloudRunService.condition","fields":{"id":{"name":"id","type":"\u0007","is_mandatory":true,"title":"Internal ID"},"lastTransitionTime":{"name":"lastTransitionTime","type":"\t","is_mandatory":true,"title":"Last time the condition transitioned from one status to another"},"message":{"name":"message","type":"\u0007","is_mandatory":true,"title":"Human-readable message indicating details about the current status"},"severity":{"name":"severity","type":"\u0007","is_mandatory":true,"title":"How to interpret failures of this condition"},"state":{"name":"state","type":"\u0007","is_mandatory":true,"title":"Condition state"},"type":{"name":"type","type":"\u0007","is_mandatory":true,"title":"Status of the reconciliation process"}},"title":"GCP Cloud Run condition","private":true,"defaults":"type state message"},"gcp.project.cloudRunService.container":{"id":"gcp.project.cloudRunService.container","name":"gcp.project.cloudRunService.container","fields":{"args":{"name":"args","type":"\u0019\u0007","is_mandatory":true,"title":"Arguments to the entrypoint"},"command":{"name":"command","type":"\u0019\u0007","is_mandatory":true,"title":"Entrypoint array"},"env":{"name":"env","type":"\u0019\n","is_mandatory":true,"title":"Environment variables"},"id":{"name":"id","type":"\u0007","is_mandatory":true,"title":"Internal ID"},"image":{"name":"image","type":"\u0007","is_mandatory":true,"title":"URL of the container image in Google Container Registry or Google Artifact Registry"},"livenessProbe":{"name":"livenessProbe","type":"\u001bgcp.project.cloudRunService.container.probe","is_mandatory":true,"title":"Periodic probe of container liveness"},"name":{"name":"name","type":"\u0007","is_mandatory":true,"title":"Container name"},"ports":{"name":"ports","type":"\u0019\n","is_mandatory":true,"title":"List of ports to expose from the container"},"resources":{"name":"resources","type":"\n","is_mandatory":true,"title":"Compute resource requirements by the container"},"startupProbe":{"name":"startupProbe","type":"\u001bgcp.project.cloudRunService.container.probe","is_mandatory":true,"title":"Startup probe of application within the container"},"volumeMounts":{"name":"volumeMounts","type":"\u0019\n","is_mandatory":true,"title":"Volumes to mount into the container's filesystem"},"workingDir":{"name":"workingDir","type":"\u0007","is_mandatory":true,"title":"Container's working directory"}},"title":"GCP Cloud Run service revision template container","private":true,"defaults":"name image"},"gcp.project.cloudRunService.container.probe":{"id":"gcp.project.cloudRunService.container.probe","name":"gcp.project.cloudRunService.container.probe","fields":{"failureThreshold":{"name":"failureThreshold","type":"\u0005","is_mandatory":true,"title":"Minimum consecutive successes for the probe to be considered failed"},"httpGet":{"name":"httpGet","type":"\n","is_mandatory":true,"title":"HTTP GET probe configuration"},"id":{"name":"id","type":"\u0007","is_mandatory":true,"title":"Internal ID"},"initialDelaySeconds":{"name":"initialDelaySeconds","type":"\u0005","is_mandatory":true,"title":"Number of seconds after the container has started before the probe is initiated"},"periodSeconds":{"name":"periodSeconds","type":"\u0005","is_mandatory":true,"title":"Number of seconds indicating how often to perform the probe"},"tcpSocket":{"name":"tcpSocket","type":"\n","is_mandatory":true,"title":"TCP socket probe configuration"},"timeoutSeconds":{"name":"timeoutSeconds","type":"\u0005","is_mandatory":true,"title":"Number of seconds after which the probe times out"}},"title":"GCP Cloud Run service revision template container probe","private":true},"gcp.project.cloudRunService.job":{"id":"gcp.project.cloudRunService.job","name":"gcp.project.cloudRunService.job","fields":{"annotations":{"name":"annotations","type":"\u001a\u0007\u0007","is_mandatory":true,"title":"Unstructured key-value map that may be set by external tools to store an arbitrary metadata"},"client":{"name":"client","type":"\u0007","is_mandatory":true,"title":"Arbitrary identifier for the API client"},"clientVersion":{"name":"clientVersion","type":"\u0007","is_mandatory":true,"title":"Arbitrary version identifier for the API client"},"conditions":{"name":"conditions","type":"\u0019\u001bgcp.project.cloudRunService.condition","is_mandatory":true,"title":"Conditions of all other associated sub-resources"},"created":{"name":"created","type":"\t","is_mandatory":true,"title":"Creation timestamp"},"creator":{"name":"creator","type":"\u0007","is_mandatory":true,"title":"Email address of the authenticated creator"},"deleted":{"name":"deleted","type":"\t","is_mandatory":true,"title":"Deletion timestamp"},"executionCount":{"name":"executionCount","type":"\u0005","is_mandatory":true,"title":"Number of executions created for this job"},"expired":{"name":"expired","type":"\t","is_mandatory":true,"title":"Timestamp after which a deleted service will be permanently deleted"},"generation":{"name":"generation","type":"\u0005","is_mandatory":true,"title":"Number that monotonically increases every time the user modifies the desired state"},"id":{"name":"id","type":"\u0007","is_mandatory":true,"title":"Job identifier"},"labels":{"name":"labels","type":"\u001a\u0007\u0007","is_mandatory":true,"title":"User-defined labels"},"lastModifier":{"name":"lastModifier","type":"\u0007","is_mandatory":true,"title":"Email address of the last authenticated modifier"},"launchStage":{"name":"launchStage","type":"\u0007","is_mandatory":true,"title":"Launch stage"},"name":{"name":"name","type":"\u0007","is_mandatory":true,"title":"Job name"},"observedGeneration":{"name":"observedGeneration","type":"\u0005","is_mandatory":true,"title":"Generation of this service currently serving traffic"},"projectId":{"name":"projectId","type":"\u0007","is_mandatory":true,"title":"Project ID"},"reconciling":{"name":"reconciling","type":"\u0004","is_mandatory":true,"title":"Whether the service is currently being acted upon by the system to bring it into the desired state"},"region":{"name":"region","type":"\u0007","is_mandatory":true,"title":"Region"},"template":{"name":"template","type":"\u001bgcp.project.cloudRunService.job.executionTemplate","is_mandatory":true,"title":"Template used to create executions for this job"},"terminalCondition":{"name":"terminalCondition","type":"\u001bgcp.project.cloudRunService.condition","is_mandatory":true,"title":"Conditions of this service, containing its readiness status and detailed error information in case it did not reach a serving state"},"updated":{"name":"updated","type":"\t","is_mandatory":true,"title":"Update timestamp"}},"title":"GCP Cloud Run job","private":true},"gcp.project.cloudRunService.job.executionTemplate":{"id":"gcp.project.cloudRunService.job.executionTemplate","name":"gcp.project.cloudRunService.job.executionTemplate","fields":{"annotations":{"name":"annotations","type":"\u001a\u0007\u0007","is_mandatory":true,"title":"Unstructured key-value map that may be set by external tools to store an arbitrary metadata"},"id":{"name":"id","type":"\u0007","is_mandatory":true,"title":"Internal ID"},"labels":{"name":"labels","type":"\u001a\u0007\u0007","is_mandatory":true,"title":"User-defined labels"},"parallelism":{"name":"parallelism","type":"\u0005","is_mandatory":true,"title":"Specifies the maximum desired number of tasks the execution should run at a given time"},"taskCount":{"name":"taskCount","type":"\u0005","is_mandatory":true,"title":"Specifies the desired number of tasks the execution should run"},"template":{"name":"template","type":"\u001bgcp.project.cloudRunService.job.executionTemplate.taskTemplate","is_mandatory":true,"title":"Describes the task that will be create when executing an execution"}},"title":"GCP Cloud Run job execution template","private":true},"gcp.project.cloudRunService.job.executionTemplate.taskTemplate":{"id":"gcp.project.cloudRunService.job.executionTemplate.taskTemplate","name":"gcp.project.cloudRunService.job.executionTemplate.taskTemplate","fields":{"containers":{"name":"containers","type":"\u0019\u001bgcp.project.cloudRunService.container","is_mandatory":true,"title":"Containers for this revision"},"encryptionKey":{"name":"encryptionKey","type":"\u0007","is_mandatory":true,"title":"Reference to a customer-managed encryption key to use to encrypt this container image"},"executionEnvironment":{"name":"executionEnvironment","type":"\u0007","is_mandatory":true,"title":"Sandbox environment to host the revision"},"id":{"name":"id","type":"\u0007","is_mandatory":true,"title":"Internal ID"},"maxRetries":{"name":"maxRetries","type":"\u0005","is_mandatory":true,"title":"Number of retries allowed per task"},"serviceAccount":{"name":"serviceAccount","type":"\u0007","is_mandatory":true,"title":"Email address of the IAM service account associated with the revision of the service"},"timeout":{"name":"timeout","type":"\t","is_mandatory":true,"title":"Maximum allowed time for an instance to respond to a request"},"volumes":{"name":"volumes","type":"\u0019\n","is_mandatory":true,"title":"List of volumes to make available to containers"},"vpcAccess":{"name":"vpcAccess","type":"\n","is_mandatory":true,"title":"VPC access configuration"}},"title":"GCP Cloud Run job execution template task template","private":true},"gcp.project.cloudRunService.operation":{"id":"gcp.project.cloudRunService.operation","name":"gcp.project.cloudRunService.operation","fields":{"done":{"name":"done","type":"\u0004","is_mandatory":true,"title":"Whether the operation is completed"},"name":{"name":"name","type":"\u0007","is_mandatory":true,"title":"Operation name"},"projectId":{"name":"projectId","type":"\u0007","is_mandatory":true,"title":"Project ID"}},"title":"GCP Cloud Run operation","private":true,"defaults":"name"},"gcp.project.cloudRunService.service":{"id":"gcp.project.cloudRunService.service","name":"gcp.project.cloudRunService.service","fields":{"annotations":{"name":"annotations","type":"\u001a\u0007\u0007","is_mandatory":true,"title":"Unstructured key-value map that may be set by external tools to store an arbitrary metadata"},"conditions":{"name":"conditions","type":"\u0019\u001bgcp.project.cloudRunService.condition","is_mandatory":true,"title":"Conditions of all other associated sub-resources"},"created":{"name":"created","type":"\t","is_mandatory":true,"title":"Creation timestamp"},"creator":{"name":"creator","type":"\u0007","is_mandatory":true,"title":"Email address of the authenticated creator"},"deleted":{"name":"deleted","type":"\t","is_mandatory":true,"title":"Deletion timestamp"},"description":{"name":"description","type":"\u0007","is_mandatory":true,"title":"Service description"},"expired":{"name":"expired","type":"\t","is_mandatory":true,"title":"Timestamp after which a deleted service will be permanently deleted"},"generation":{"name":"generation","type":"\u0005","is_mandatory":true,"title":"Number that monotonically increases every time the user modifies the desired state"},"id":{"name":"id","type":"\u0007","is_mandatory":true,"title":"Service identifier"},"ingress":{"name":"ingress","type":"\u0007","is_mandatory":true,"title":"Ingress settings"},"labels":{"name":"labels","type":"\u001a\u0007\u0007","is_mandatory":true,"title":"User-provided labels"},"lastModifier":{"name":"lastModifier","type":"\u0007","is_mandatory":true,"title":"Email address of the last authenticated modifier"},"latestCreatedRevision":{"name":"latestCreatedRevision","type":"\u0007","is_mandatory":true,"title":"Name of the last created revision"},"latestReadyRevision":{"name":"latestReadyRevision","type":"\u0007","is_mandatory":true,"title":"Name of the latest revision that is serving traffic"},"launchStage":{"name":"launchStage","type":"\u0007","is_mandatory":true,"title":"Launch stage"},"name":{"name":"name","type":"\u0007","is_mandatory":true,"title":"Service name"},"observedGeneration":{"name":"observedGeneration","type":"\u0005","is_mandatory":true,"title":"Generation of this service currently serving traffic"},"projectId":{"name":"projectId","type":"\u0007","is_mandatory":true,"title":"Project ID"},"reconciling":{"name":"reconciling","type":"\u0004","is_mandatory":true,"title":"Whether the service is currently being acted upon by the system to bring it into the desired state"},"region":{"name":"region","type":"\u0007","is_mandatory":true,"title":"Region"},"template":{"name":"template","type":"\u001bgcp.project.cloudRunService.service.revisionTemplate","is_mandatory":true,"title":"Template used to create revisions for the service"},"terminalCondition":{"name":"terminalCondition","type":"\u001bgcp.project.cloudRunService.condition","is_mandatory":true,"title":"Conditions of this service, containing its readiness status and detailed error information in case it did not reach a serving state"},"traffic":{"name":"traffic","type":"\u0019\n","is_mandatory":true,"title":"Specifies how to distribute traffic over a collection of revisions belonging to the service"},"trafficStatuses":{"name":"trafficStatuses","type":"\u0019\n","is_mandatory":true,"title":"Detailed status information for corresponding traffic targets"},"updated":{"name":"updated","type":"\t","is_mandatory":true,"title":"Update timestamp"},"uri":{"name":"uri","type":"\u0007","is_mandatory":true,"title":"Main URI in which this service is serving traffic"}},"title":"GCP Cloud Run service","private":true,"defaults":"name"},"gcp.project.cloudRunService.service.revisionTemplate":{"id":"gcp.project.cloudRunService.service.revisionTemplate","name":"gcp.project.cloudRunService.service.revisionTemplate","fields":{"annotations":{"name":"annotations","type":"\u001a\u0007\u0007","is_mandatory":true,"title":"Unstructured key-value map that may be set by external tools to store an arbitrary metadata"},"containers":{"name":"containers","type":"\u0019\u001bgcp.project.cloudRunService.container","is_mandatory":true,"title":"Containers for this revision"},"encryptionKey":{"name":"encryptionKey","type":"\u0007","is_mandatory":true,"title":"Reference to a customer-managed encryption key to use to encrypt this container image"},"executionEnvironment":{"name":"executionEnvironment","type":"\u0007","is_mandatory":true,"title":"Sandbox environment to host the revision"},"id":{"name":"id","type":"\u0007","is_mandatory":true,"title":"Internal ID"},"labels":{"name":"labels","type":"\u001a\u0007\u0007","is_mandatory":true,"title":"User-provided labels"},"maxInstanceRequestConcurrency":{"name":"maxInstanceRequestConcurrency","type":"\u0005","is_mandatory":true,"title":"Maximum number of requests that each serving instance can receive"},"name":{"name":"name","type":"\u0007","is_mandatory":true,"title":"Revision name"},"scaling":{"name":"scaling","type":"\n","is_mandatory":true,"title":"Scaling settings"},"serviceAccount":{"name":"serviceAccount","type":"\u0007","is_mandatory":true,"title":"Email address of the IAM service account associated with the revision of the service"},"timeout":{"name":"timeout","type":"\t","is_mandatory":true,"title":"Maximum allowed time for an instance to respond to a request"},"volumes":{"name":"volumes","type":"\u0019\n","is_mandatory":true,"title":"List of volumes to make available to containers"},"vpcAccess":{"name":"vpcAccess","type":"\n","is_mandatory":true,"title":"VPC access configuration"}},"title":"GCP Cloud Run service revision template","private":true,"defaults":"name"},"gcp.project.computeService":{"id":"gcp.project.computeService","name":"gcp.project.computeService","fields":{"backendServices":{"name":"backendServices","type":"\u0019\u001bgcp.project.computeService.backendService","title":"List of backend services"},"disks":{"name":"disks","type":"\u0019\u001bgcp.project.computeService.disk","title":"Google Compute Engine disks in a project"},"firewalls":{"name":"firewalls","type":"\u0019\u001bgcp.project.computeService.firewall","title":"Google Compute Engine firewalls in a project"},"images":{"name":"images","type":"\u0019\u001bgcp.project.computeService.image","title":"Google Compute Engine images in a project"},"instances":{"name":"instances","type":"\u0019\u001bgcp.project.computeService.instance","title":"Google Compute Engine instances in a project"},"machineTypes":{"name":"machineTypes","type":"\u0019\u001bgcp.project.computeService.machineType","title":"Google Compute Engine machine types in a project"},"networks":{"name":"networks","type":"\u0019\u001bgcp.project.computeService.network","title":"Google Compute Engine VPC Network in a project"},"projectId":{"name":"projectId","type":"\u0007","is_mandatory":true,"title":"Project ID"},"regions":{"name":"regions","type":"\u0019\u001bgcp.project.computeService.region","title":"Project Regions"},"routers":{"name":"routers","type":"\u0019\u001bgcp.project.computeService.router","title":"Cloud Routers in project"},"snapshots":{"name":"snapshots","type":"\u0019\u001bgcp.project.computeService.snapshot","title":"Google Compute Engine snapshots in a project"},"subnetworks":{"name":"subnetworks","type":"\u0019\u001bgcp.project.computeService.subnetwork","title":"Logical partition of a Virtual Private Cloud network"},"zones":{"name":"zones","type":"\u0019\u001bgcp.project.computeService.zone","title":"Project Zones"}},"title":"GCP Compute Engine","private":true},"gcp.project.computeService.attachedDisk":{"id":"gcp.project.computeService.attachedDisk","name":"gcp.project.computeService.attachedDisk","fields":{"architecture":{"name":"architecture","type":"\u0007","is_mandatory":true,"title":"Architecture of the attached disk"},"autoDelete":{"name":"autoDelete","type":"\u0004","is_mandatory":true,"title":"Indicates if disk will be auto-deleted"},"boot":{"name":"boot","type":"\u0004","is_mandatory":true,"title":"Indicates that this is a boot disk"},"deviceName":{"name":"deviceName","type":"\u0007","is_mandatory":true,"title":"Unique device name"},"diskSizeGb":{"name":"diskSizeGb","type":"\u0005","is_mandatory":true,"title":"Size of the disk in GB"},"forceAttach":{"name":"forceAttach","type":"\u0004","is_mandatory":true,"title":"Indicates whether to force attach the regional disk"},"guestOsFeatures":{"name":"guestOsFeatures","type":"\u0019\u0007","is_mandatory":true,"title":"Features to enable on the guest operating"},"id":{"name":"id","type":"\u0007","is_mandatory":true,"title":"Attached Disk ID"},"index":{"name":"index","type":"\u0005","is_mandatory":true,"title":"Index to this disk"},"interface":{"name":"interface","type":"\u0007","is_mandatory":true,"title":"Disk interface"},"licenses":{"name":"licenses","type":"\u0019\u0007","is_mandatory":true,"title":"Publicly visible licenses"},"mode":{"name":"mode","type":"\u0007","is_mandatory":true,"title":"Mode in which to the disk is attached"},"projectId":{"name":"projectId","type":"\u0007","is_mandatory":true,"title":"Project ID"},"source":{"name":"source","type":"\u001bgcp.project.computeService.disk","title":"Attached Persistent Disk resource"},"type":{"name":"type","type":"\u0007","is_mandatory":true,"title":"Disk Type"}},"title":"GCP Compute Attached Disk","private":true},"gcp.project.computeService.backendService":{"id":"gcp.project.computeService.backendService","name":"gcp.project.computeService.backendService","fields":{"affinityCookieTtlSec":{"name":"affinityCookieTtlSec","type":"\u0005","is_mandatory":true,"title":"Lifetime of cookies in seconds"},"backends":{"name":"backends","type":"\u0019\u001bgcp.project.computeService.backendService.backend","is_mandatory":true,"title":"List of backends that serve this backend service"},"cdnPolicy":{"name":"cdnPolicy","type":"\u001bgcp.project.computeService.backendService.cdnPolicy","is_mandatory":true,"title":"Cloud CDN configuration"},"circuitBreakers":{"name":"circuitBreakers","type":"\n","is_mandatory":true,"title":"Circuit breakers"},"compressionMode":{"name":"compressionMode","type":"\u0007","is_mandatory":true,"title":"Compress text responses using Brotli or gzip compression, based on the client's Accept-Encoding header"},"connectionDraining":{"name":"connectionDraining","type":"\n","is_mandatory":true,"title":"Connection draining configuration"},"connectionTrackingPolicy":{"name":"connectionTrackingPolicy","type":"\n","is_mandatory":true,"title":"Connection tracking configuration"},"consistentHash":{"name":"consistentHash","type":"\n","is_mandatory":true,"title":"Consistent hash-based load balancing used to provide soft session affinity based on HTTP headers, cookies or other properties"},"created":{"name":"created","type":"\t","is_mandatory":true,"title":"Creation timestamp"},"customRequestHeaders":{"name":"customRequestHeaders","type":"\u0019\u0007","is_mandatory":true,"title":"Headers that the load balancer adds to proxied requests"},"customResponseHeaders":{"name":"customResponseHeaders","type":"\u0019\u0007","is_mandatory":true,"title":"Headers that the load balancer adds to proxied responses"},"description":{"name":"description","type":"\u0007","is_mandatory":true,"title":"Backend service description"},"edgeSecurityPolicy":{"name":"edgeSecurityPolicy","type":"\u0007","is_mandatory":true,"title":"Resource URL for the edge security policy associated with this backend service"},"enableCDN":{"name":"enableCDN","type":"\u0004","is_mandatory":true,"title":"Whether to enable Cloud CDN"},"failoverPolicy":{"name":"failoverPolicy","type":"\n","is_mandatory":true,"title":"Failover policy"},"healthChecks":{"name":"healthChecks","type":"\u0019\u0007","is_mandatory":true,"title":"List of URLs to the health checks"},"iap":{"name":"iap","type":"\n","is_mandatory":true,"title":"Identity-aware proxy configuration"},"id":{"name":"id","type":"\u0007","is_mandatory":true,"title":"Unique identifier"},"loadBalancingScheme":{"name":"loadBalancingScheme","type":"\u0007","is_mandatory":true,"title":"Load balancer type"},"localityLbPolicies":{"name":"localityLbPolicies","type":"\u0019\n","is_mandatory":true,"title":"List of locality load balancing policies to be used in order of preference"},"localityLbPolicy":{"name":"localityLbPolicy","type":"\u0007","is_mandatory":true,"title":"Load balancing algorithm used within the scope of the locality"},"logConfig":{"name":"logConfig","type":"\n","is_mandatory":true,"title":"Log configuration"},"maxStreamDuration":{"name":"maxStreamDuration","type":"\t","is_mandatory":true,"title":"Default maximum duration (timeout) for streams to this service"},"name":{"name":"name","type":"\u0007","is_mandatory":true,"title":"Backend service name"},"networkUrl":{"name":"networkUrl","type":"\u0007","is_mandatory":true,"title":"URL to the network to which this backend service belongs"},"portName":{"name":"portName","type":"\u0007","is_mandatory":true,"title":"Named port on a backend instance group representing the port for communication to the backend VMs in that group"},"protocol":{"name":"protocol","type":"\u0007","is_mandatory":true,"title":"Protocol used for communication"},"regionUrl":{"name":"regionUrl","type":"\u0007","is_mandatory":true,"title":"Region URL"},"securityPolicyUrl":{"name":"securityPolicyUrl","type":"\u0007","is_mandatory":true,"title":"Security policy URL"},"securitySettings":{"name":"securitySettings","type":"\n","is_mandatory":true,"title":"Security settings"},"serviceBindingUrls":{"name":"serviceBindingUrls","type":"\u0019\u0007","is_mandatory":true,"title":"Service binding URLs"},"sessionAffinity":{"name":"sessionAffinity","type":"\u0007","is_mandatory":true,"title":"Session affinity type"},"timeoutSec":{"name":"timeoutSec","type":"\u0005","is_mandatory":true,"title":"Backend service timeout in settings"}},"title":"GCP Compute backend service","private":true,"defaults":"name"},"gcp.project.computeService.backendService.backend":{"id":"gcp.project.computeService.backendService.backend","name":"gcp.project.computeService.backendService.backend","fields":{"balancingMode":{"name":"balancingMode","type":"\u0007","is_mandatory":true,"title":"How to determine whether the backend of a load balancer can handle additional traffic or is fully loaded"},"capacityScaler":{"name":"capacityScaler","type":"\u0006","is_mandatory":true,"title":"Multiplier applied to the backend's target capacity of its balancing mode"},"description":{"name":"description","type":"\u0007","is_mandatory":true,"title":"Backend description"},"failover":{"name":"failover","type":"\u0004","is_mandatory":true,"title":"Whether this is a failover backend"},"groupUrl":{"name":"groupUrl","type":"\u0007","is_mandatory":true,"title":"Fully-qualified URL of an instance group or network endpoint group determining what types of backends a load balancer supports"},"id":{"name":"id","type":"\u0007","is_mandatory":true,"title":"Internal ID"},"maxConnections":{"name":"maxConnections","type":"\u0005","is_mandatory":true,"title":"Maximum number of simultaneous connections"},"maxConnectionsPerEndpoint":{"name":"maxConnectionsPerEndpoint","type":"\u0005","is_mandatory":true,"title":"Maximum number of simultaneous connections per endpoint"},"maxConnectionsPerInstance":{"name":"maxConnectionsPerInstance","type":"\u0005","is_mandatory":true,"title":"Maximum number of simultaneous connections per instance"},"maxRate":{"name":"maxRate","type":"\u0005","is_mandatory":true,"title":"Maximum number of HTTP requests per second"},"maxRatePerEndpoint":{"name":"maxRatePerEndpoint","type":"\u0006","is_mandatory":true,"title":"Maximum number for requests per second per endpoint"},"maxRatePerInstance":{"name":"maxRatePerInstance","type":"\u0006","is_mandatory":true,"title":"Maximum number for requests per second per instance"},"maxUtilization":{"name":"maxUtilization","type":"\u0006","is_mandatory":true,"title":"Target capacity for the utilization balancing mode"}},"title":"GCP Compute backend service backend","private":true,"defaults":"description"},"gcp.project.computeService.backendService.cdnPolicy":{"id":"gcp.project.computeService.backendService.cdnPolicy","name":"gcp.project.computeService.backendService.cdnPolicy","fields":{"bypassCacheOnRequestHeaders":{"name":"bypassCacheOnRequestHeaders","type":"\u0019\n","is_mandatory":true,"title":"Bypass the cache when the specified request headers are matched"},"cacheKeyPolicy":{"name":"cacheKeyPolicy","type":"\n","is_mandatory":true,"title":"Cache key policy"},"cacheMode":{"name":"cacheMode","type":"\u0007","is_mandatory":true,"title":"Cache mode for all responses from this backend"},"clientTtl":{"name":"clientTtl","type":"\u0005","is_mandatory":true,"title":"Client maximum TTL"},"defaultTtl":{"name":"defaultTtl","type":"\u0005","is_mandatory":true,"title":"Default TTL for cached content"},"id":{"name":"id","type":"\u0007","is_mandatory":true,"title":"Internal ID"},"maxTtl":{"name":"maxTtl","type":"\u0005","is_mandatory":true,"title":"Maximum allowed TTL for cached content"},"negativeCaching":{"name":"negativeCaching","type":"\u0004","is_mandatory":true,"title":"Negative caching allows per-status code TTLs to be set, in order to apply fine-grained caching for common errors or redirects"},"negativeCachingPolicy":{"name":"negativeCachingPolicy","type":"\u0019\n","is_mandatory":true,"title":"Negative caching policy"},"requestCoalescing":{"name":"requestCoalescing","type":"\u0004","is_mandatory":true,"title":"Whether Cloud CDN will combine multiple concurrent cache fill requests into a small number of requests to the origin"},"serveWhileStale":{"name":"serveWhileStale","type":"\u0005","is_mandatory":true,"title":"Serve existing content from the cache when revalidating content with the origin"},"signedUrlCacheMaxAgeSec":{"name":"signedUrlCacheMaxAgeSec","type":"\u0005","is_mandatory":true,"title":"Maximum number of seconds the response to a signed URL request will be considered fresh"},"signedUrlKeyNames":{"name":"signedUrlKeyNames","type":"\u0019\u0007","is_mandatory":true,"title":"Names of the keys for signing request URLs"}},"title":"GCP Compute backend service CDN policy","private":true},"gcp.project.computeService.disk":{"id":"gcp.project.computeService.disk","name":"gcp.project.computeService.disk","fields":{"architecture":{"name":"architecture","type":"\u0007","is_mandatory":true,"title":"The architecture of the disk"},"created":{"name":"created","type":"\t","is_mandatory":true,"title":"Creation timestamp"},"description":{"name":"description","type":"\u0007","is_mandatory":true,"title":"Optional description"},"diskEncryptionKey":{"name":"diskEncryptionKey","type":"\n","is_mandatory":true,"title":"Disk encryption key"},"guestOsFeatures":{"name":"guestOsFeatures","type":"\u0019\u0007","is_mandatory":true,"title":"Features to enable on the guest operating"},"id":{"name":"id","type":"\u0007","is_mandatory":true,"title":"Unique identifier for the resource"},"labels":{"name":"labels","type":"\u001a\u0007\u0007","is_mandatory":true,"title":"Labels to apply to this disk"},"lastAttachTimestamp":{"name":"lastAttachTimestamp","type":"\t","is_mandatory":true,"title":"Last attach timestamp"},"lastDetachTimestamp":{"name":"lastDetachTimestamp","type":"\t","is_mandatory":true,"title":"Last detach timestamp"},"licenses":{"name":"licenses","type":"\u0019\u0007","is_mandatory":true,"title":"Publicly visible licenses"},"locationHint":{"name":"locationHint","type":"\u0007","is_mandatory":true,"title":"An opaque location hint"},"name":{"name":"name","type":"\u0007","is_mandatory":true,"title":"User-friendly name for this disk"},"physicalBlockSizeBytes":{"name":"physicalBlockSizeBytes","type":"\u0005","is_mandatory":true,"title":"Physical block size of the persistent disk"},"provisionedIops":{"name":"provisionedIops","type":"\u0005","is_mandatory":true,"title":"Indicates how many IOPS to provision for the disk"},"sizeGb":{"name":"sizeGb","type":"\u0005","is_mandatory":true,"title":"Size, in GB, of the persistent disk"},"status":{"name":"status","type":"\u0007","is_mandatory":true,"title":"The status of disk creation"},"zone":{"name":"zone","type":"\u001bgcp.project.computeService.zone","is_mandatory":true,"title":"Disk Zone"}},"title":"GCP Compute Persistent Disk","private":true,"defaults":"name"},"gcp.project.computeService.firewall":{"id":"gcp.project.computeService.firewall","name":"gcp.project.computeService.firewall","fields":{"allowed":{"name":"allowed","type":"\u0019\n","is_mandatory":true,"title":"List of ALLOW rules specified by this firewall"},"created":{"name":"created","type":"\t","is_mandatory":true,"title":"Creation timestamp"},"denied":{"name":"denied","type":"\u0019\n","is_mandatory":true,"title":"List of DENY rules specified by this firewall"},"description":{"name":"description","type":"\u0007","is_mandatory":true,"title":"An optional description of this resource"},"destinationRanges":{"name":"destinationRanges","type":"\u0019\u0007","is_mandatory":true,"title":"If defined the rule applies only to traffic that has destination IP address"},"direction":{"name":"direction","type":"\u0007","is_mandatory":true,"title":"Direction of traffic"},"disabled":{"name":"disabled","type":"\u0004","is_mandatory":true,"title":"Indicates whether the firewall rule is disabled"},"id":{"name":"id","type":"\u0007","is_mandatory":true,"title":"Unique Identifier"},"name":{"name":"name","type":"\u0007","is_mandatory":true,"title":"User-provided name"},"priority":{"name":"priority","type":"\u0005","is_mandatory":true,"title":"Priority for this rule"},"sourceRanges":{"name":"sourceRanges","type":"\u0019\u0007","is_mandatory":true,"title":"Source Ranges"},"sourceServiceAccounts":{"name":"sourceServiceAccounts","type":"\u0019\u0007","is_mandatory":true,"title":"Source Service Accounts"},"sourceTags":{"name":"sourceTags","type":"\u0019\u0007","is_mandatory":true,"title":"Source Tags"},"targetServiceAccounts":{"name":"targetServiceAccounts","type":"\u0019\u0007","is_mandatory":true,"title":"List of service accounts"}},"title":"GCP Compute Firewall","private":true,"defaults":"name"},"gcp.project.computeService.image":{"id":"gcp.project.computeService.image","name":"gcp.project.computeService.image","fields":{"architecture":{"name":"architecture","type":"\u0007","is_mandatory":true,"title":"Architecture of the snapshot"},"archiveSizeBytes":{"name":"archiveSizeBytes","type":"\u0005","is_mandatory":true,"title":"Size of the image tar.gz archive stored in Google Cloud Storage (in bytes)"},"created":{"name":"created","type":"\t","is_mandatory":true,"title":"Creation timestamp"},"description":{"name":"description","type":"\u0007","is_mandatory":true,"title":"Optional description"},"diskSizeGb":{"name":"diskSizeGb","type":"\u0005","is_mandatory":true,"title":"Size of the image when restored onto a persistent disk (in GB)"},"family":{"name":"family","type":"\u0007","is_mandatory":true,"title":"The name of the image family to which this image belongs"},"id":{"name":"id","type":"\u0007","is_mandatory":true,"title":"Unique identifier"},"labels":{"name":"labels","type":"\u001a\u0007\u0007","is_mandatory":true,"title":"Snapshot Labels"},"licenses":{"name":"licenses","type":"\u0019\u0007","is_mandatory":true,"title":"Public visible licenses"},"name":{"name":"name","type":"\u0007","is_mandatory":true,"title":"Name of the resource"},"status":{"name":"status","type":"\u0007","is_mandatory":true,"title":"The status of the image"}},"title":"GCP Compute","private":true,"defaults":"id name"},"gcp.project.computeService.instance":{"id":"gcp.project.computeService.instance","name":"gcp.project.computeService.instance","fields":{"canIpForward":{"name":"canIpForward","type":"\u0004","is_mandatory":true,"title":"Indicates if this instance is allowed to send and receive packets with non-matching destination or source IPs"},"confidentialInstanceConfig":{"name":"confidentialInstanceConfig","type":"\n","is_mandatory":true,"title":"Confidential instance configuration"},"cpuPlatform":{"name":"cpuPlatform","type":"\u0007","is_mandatory":true,"title":"The CPU platform used by this instance"},"created":{"name":"created","type":"\t","is_mandatory":true,"title":"Creation timestamp"},"deletionProtection":{"name":"deletionProtection","type":"\u0004","is_mandatory":true,"title":"Indicates if instance is protected against deletion"},"description":{"name":"description","type":"\u0007","is_mandatory":true,"title":"User-friendly name for this instance"},"disks":{"name":"disks","type":"\u0019\u001bgcp.project.computeService.attachedDisk","is_mandatory":true,"title":"Disks associated with this instance"},"enableDisplay":{"name":"enableDisplay","type":"\u0004","is_mandatory":true,"title":"Indicates if the instance has Display enabled"},"enableIntegrityMonitoring":{"name":"enableIntegrityMonitoring","type":"\u0004","is_mandatory":true,"title":"Indicates if Shielded Instance integrity monitoring is enabled"},"enableSecureBoot":{"name":"enableSecureBoot","type":"\u0004","is_mandatory":true,"title":"Indicates if Shielded Instance secure boot is enabled"},"enableVtpm":{"name":"enableVtpm","type":"\u0004","is_mandatory":true,"title":"Indicates if Shielded Instance vTPM is enabled"},"fingerprint":{"name":"fingerprint","type":"\u0007","is_mandatory":true,"title":"Instance Fingerprint"},"guestAccelerators":{"name":"guestAccelerators","type":"\u0019\n","is_mandatory":true,"title":"Attached list of accelerator cards"},"hostname":{"name":"hostname","type":"\u0007","is_mandatory":true,"title":"Hostname of the instance"},"id":{"name":"id","type":"\u0007","is_mandatory":true,"title":"Unique identifier for the resource"},"keyRevocationActionType":{"name":"keyRevocationActionType","type":"\u0007","is_mandatory":true,"title":"KeyRevocationActionType of the instance"},"labels":{"name":"labels","type":"\u001a\u0007\u0007","is_mandatory":true,"title":"User-provided labels"},"lastStartTimestamp":{"name":"lastStartTimestamp","type":"\t","is_mandatory":true,"title":"Last start timestamp"},"lastStopTimestamp":{"name":"lastStopTimestamp","type":"\t","is_mandatory":true,"title":"Last stop timestamp"},"lastSuspendedTimestamp":{"name":"lastSuspendedTimestamp","type":"\t","is_mandatory":true,"title":"Last suspended timestamp"},"machineType":{"name":"machineType","type":"\u001bgcp.project.computeService.machineType","title":"Machine type"},"metadata":{"name":"metadata","type":"\u001a\u0007\u0007","is_mandatory":true,"title":"Instance Metadata"},"minCpuPlatform":{"name":"minCpuPlatform","type":"\u0007","is_mandatory":true,"title":"Minimum CPU platform for the VM instance"},"name":{"name":"name","type":"\u0007","is_mandatory":true,"title":"User-friendly name for this instance"},"networkInterfaces":{"name":"networkInterfaces","type":"\u0019\n","is_mandatory":true,"title":"Network configurations for this instance"},"physicalHostResourceStatus":{"name":"physicalHostResourceStatus","type":"\u0007","is_mandatory":true,"title":"Resource status for physical host"},"privateIpv6GoogleAccess":{"name":"privateIpv6GoogleAccess","type":"\u0007","is_mandatory":true,"title":"private IPv6 google access type for the VM"},"projectId":{"name":"projectId","type":"\u0007","is_mandatory":true,"title":"Project ID"},"reservationAffinity":{"name":"reservationAffinity","type":"\n","is_mandatory":true,"title":"Reservations that this instance can consume from"},"resourcePolicies":{"name":"resourcePolicies","type":"\u0019\u0007","is_mandatory":true,"title":"Resource policies applied to this instance"},"scheduling":{"name":"scheduling","type":"\n","is_mandatory":true,"title":"Scheduling options"},"serviceAccounts":{"name":"serviceAccounts","type":"\u0019\u001bgcp.project.computeService.serviceaccount","is_mandatory":true,"title":"Service accounts authorized for this instance"},"sourceMachineImage":{"name":"sourceMachineImage","type":"\u0007","is_mandatory":true,"title":"Source machine image"},"startRestricted":{"name":"startRestricted","type":"\u0004","is_mandatory":true,"title":"Indicates if VM has been restricted for start because Compute Engine has detected suspicious activity"},"status":{"name":"status","type":"\u0007","is_mandatory":true,"title":"Instance status"},"statusMessage":{"name":"statusMessage","type":"\u0007","is_mandatory":true,"title":"Human-readable explanation of the status"},"tags":{"name":"tags","type":"\u0019\u0007","is_mandatory":true,"title":"Tags associated with this instance"},"totalEgressBandwidthTier":{"name":"totalEgressBandwidthTier","type":"\u0007","is_mandatory":true,"title":"Network performance configuration"},"zone":{"name":"zone","type":"\u001bgcp.project.computeService.zone","is_mandatory":true,"title":"Instance zone"}},"title":"GCP Compute Instances","private":true,"defaults":"name"},"gcp.project.computeService.machineType":{"id":"gcp.project.computeService.machineType","name":"gcp.project.computeService.machineType","fields":{"created":{"name":"created","type":"\t","is_mandatory":true,"title":"Creation timestamp"},"description":{"name":"description","type":"\u0007","is_mandatory":true,"title":"Resource Description"},"guestCpus":{"name":"guestCpus","type":"\u0005","is_mandatory":true,"title":"Number of virtual CPUs that are available to the instance"},"id":{"name":"id","type":"\u0007","is_mandatory":true,"title":"Unique identifier"},"isSharedCpu":{"name":"isSharedCpu","type":"\u0004","is_mandatory":true,"title":"Indicates if the machine has a shared CPU"},"maximumPersistentDisks":{"name":"maximumPersistentDisks","type":"\u0005","is_mandatory":true,"title":"Maximum persistent disks allowed"},"maximumPersistentDisksSizeGb":{"name":"maximumPersistentDisksSizeGb","type":"\u0005","is_mandatory":true,"title":"Maximum total persistent disks size (GB) allowed."},"memoryMb":{"name":"memoryMb","type":"\u0005","is_mandatory":true,"title":"Physical memory available to the instance (MB)"},"name":{"name":"name","type":"\u0007","is_mandatory":true,"title":"Name of the resource"},"projectId":{"name":"projectId","type":"\u0007","is_mandatory":true,"title":"Project ID"},"zone":{"name":"zone","type":"\u001bgcp.project.computeService.zone","is_mandatory":true,"title":"The zone where the machine type resides"}},"title":"GCP Machine Type","private":true,"defaults":"name"},"gcp.project.computeService.network":{"id":"gcp.project.computeService.network","name":"gcp.project.computeService.network","fields":{"autoCreateSubnetworks":{"name":"autoCreateSubnetworks","type":"\u0004","is_mandatory":true,"title":"If not set, indicates a legacy network"},"created":{"name":"created","type":"\t","is_mandatory":true,"title":"Creation timestamp"},"description":{"name":"description","type":"\u0007","is_mandatory":true,"title":"An optional description of this resource"},"enableUlaInternalIpv6":{"name":"enableUlaInternalIpv6","type":"\u0004","is_mandatory":true,"title":"Indicates if ULA internal IPv6 is enabled on this network"},"gatewayIPv4":{"name":"gatewayIPv4","type":"\u0007","is_mandatory":true,"title":"Gateway address for default routing"},"id":{"name":"id","type":"\u0007","is_mandatory":true,"title":"Unique Identifier"},"mode":{"name":"mode","type":"\u0007","is_mandatory":true,"title":"Network mode - legacy, custom or auto"},"mtu":{"name":"mtu","type":"\u0005","is_mandatory":true,"title":"Maximum Transmission Unit in bytes"},"name":{"name":"name","type":"\u0007","is_mandatory":true,"title":"Name of the resource"},"networkFirewallPolicyEnforcementOrder":{"name":"networkFirewallPolicyEnforcementOrder","type":"\u0007","is_mandatory":true,"title":"Network firewall policy enforcement order"},"peerings":{"name":"peerings","type":"\u0019\n","is_mandatory":true,"title":"Network peerings for the resource"},"routingMode":{"name":"routingMode","type":"\u0007","is_mandatory":true,"title":"The network-wide routing mode to use"},"subnetworkUrls":{"name":"subnetworkUrls","type":"\u0019\u0007","is_mandatory":true,"title":"List of URLs for the subnetwork in this network"},"subnetworks":{"name":"subnetworks","type":"\u0019\u001bgcp.project.computeService.subnetwork","title":"Subnetworks in this network"}},"title":"GCP Compute VPC Network resource","private":true,"defaults":"name"},"gcp.project.computeService.region":{"id":"gcp.project.computeService.region","name":"gcp.project.computeService.region","fields":{"created":{"name":"created","type":"\t","is_mandatory":true,"title":"Creation timestamp"},"deprecated":{"name":"deprecated","type":"\n","is_mandatory":true,"title":"Deprecation status"},"description":{"name":"description","type":"\u0007","is_mandatory":true,"title":"Resource Description"},"id":{"name":"id","type":"\u0007","is_mandatory":true,"title":"Unique identifier"},"name":{"name":"name","type":"\u0007","is_mandatory":true,"title":"Name of the resource"},"quotas":{"name":"quotas","type":"\u001a\u0007\u0006","is_mandatory":true,"title":"Quotas assigned to this region"},"status":{"name":"status","type":"\u0007","is_mandatory":true,"title":"Status of the region"}},"title":"GCP Compute Region","private":true,"defaults":"name"},"gcp.project.computeService.router":{"id":"gcp.project.computeService.router","name":"gcp.project.computeService.router","fields":{"bgp":{"name":"bgp","type":"\n","is_mandatory":true,"title":"BGP information"},"bgpPeers":{"name":"bgpPeers","type":"\u0019\n","is_mandatory":true,"title":"BGP routing stack configuration to establish BGP peering"},"created":{"name":"created","type":"\t","is_mandatory":true,"title":"Creation timestamp"},"description":{"name":"description","type":"\u0007","is_mandatory":true,"title":"An optional description of this resource"},"encryptedInterconnectRouter":{"name":"encryptedInterconnectRouter","type":"\u0004","is_mandatory":true,"title":"Indicates if a router is dedicated for use with encrypted VLAN attachments"},"id":{"name":"id","type":"\u0007","is_mandatory":true,"title":"Unique Identifier"},"name":{"name":"name","type":"\u0007","is_mandatory":true,"title":"Name of the resource"},"nats":{"name":"nats","type":"\u0019\n","is_mandatory":true,"title":"NAT services created in this router"}},"title":"GCP Compute Cloud Router","private":true,"defaults":"name"},"gcp.project.computeService.serviceaccount":{"id":"gcp.project.computeService.serviceaccount","name":"gcp.project.computeService.serviceaccount","fields":{"email":{"name":"email","type":"\u0007","is_mandatory":true,"title":"Service account email address"},"scopes":{"name":"scopes","type":"\u0019\u0007","is_mandatory":true,"title":"Service account scopes"}},"title":"GCP Compute Service Account","private":true,"defaults":"email"},"gcp.project.computeService.snapshot":{"id":"gcp.project.computeService.snapshot","name":"gcp.project.computeService.snapshot","fields":{"architecture":{"name":"architecture","type":"\u0007","is_mandatory":true,"title":"Architecture of the snapshot"},"autoCreated":{"name":"autoCreated","type":"\u0004","is_mandatory":true,"title":"Indicates if snapshot was automatically created"},"chainName":{"name":"chainName","type":"\u0007","is_mandatory":true,"title":"Snapshot Chain"},"created":{"name":"created","type":"\t","is_mandatory":true,"title":"Creation timestamp"},"creationSizeBytes":{"name":"creationSizeBytes","type":"\u0005","is_mandatory":true,"title":"Size in bytes of the snapshot at creation time"},"description":{"name":"description","type":"\u0007","is_mandatory":true,"title":"Optional description"},"diskSizeGb":{"name":"diskSizeGb","type":"\u0005","is_mandatory":true,"title":"Size of the source disk, specified in GB"},"downloadBytes":{"name":"downloadBytes","type":"\u0005","is_mandatory":true,"title":"Number of bytes downloaded to restore a snapshot to a disk"},"id":{"name":"id","type":"\u0007","is_mandatory":true,"title":"Unique identifier"},"labels":{"name":"labels","type":"\u001a\u0007\u0007","is_mandatory":true,"title":"Snapshot Labels"},"licenses":{"name":"licenses","type":"\u0019\u0007","is_mandatory":true,"title":"Public visible licenses"},"name":{"name":"name","type":"\u0007","is_mandatory":true,"title":"Name of the resource"},"snapshotType":{"name":"snapshotType","type":"\u0007","is_mandatory":true,"title":"Indicates the type of the snapshot"},"status":{"name":"status","type":"\u0007","is_mandatory":true,"title":"The status of the snapshot"},"storageBytes":{"name":"storageBytes","type":"\u0005","is_mandatory":true,"title":"Size of the storage used by the snapshot"},"storageBytesStatus":{"name":"storageBytesStatus","type":"\u0007","is_mandatory":true,"title":"An indicator whether storageBytes is in a stable state or in storage reallocation"}},"title":"GCP Compute Persistent Disk Snapshot","private":true,"defaults":"name"},"gcp.project.computeService.subnetwork":{"id":"gcp.project.computeService.subnetwork","name":"gcp.project.computeService.subnetwork","fields":{"created":{"name":"created","type":"\t","is_mandatory":true,"title":"Creation timestamp"},"description":{"name":"description","type":"\u0007","is_mandatory":true,"title":"An optional description of this resource"},"enableFlowLogs":{"name":"enableFlowLogs","type":"\u0004","is_mandatory":true,"title":"Indicates if flow logging for this subnetwork"},"externalIpv6Prefix":{"name":"externalIpv6Prefix","type":"\u0007","is_mandatory":true,"title":"External IPv6 address range"},"fingerprint":{"name":"fingerprint","type":"\u0007","is_mandatory":true,"title":"Fingerprint of this resource"},"gatewayAddress":{"name":"gatewayAddress","type":"\u0007","is_mandatory":true,"title":"Gateway address for default routes"},"id":{"name":"id","type":"\u0007","is_mandatory":true,"title":"Unique Identifier"},"internalIpv6Prefix":{"name":"internalIpv6Prefix","type":"\u0007","is_mandatory":true,"title":"Internal IPv6 address range"},"ipCidrRange":{"name":"ipCidrRange","type":"\u0007","is_mandatory":true,"title":"Range of internal addresses"},"ipv6AccessType":{"name":"ipv6AccessType","type":"\u0007","is_mandatory":true,"title":"Access type of IPv6 address"},"ipv6CidrRange":{"name":"ipv6CidrRange","type":"\u0007","is_mandatory":true,"title":"Range of internal IPv6 addresses"},"logConfig":{"name":"logConfig","type":"\u001bgcp.project.computeService.subnetwork.logConfig","is_mandatory":true,"title":"VPC flow logging configuration"},"name":{"name":"name","type":"\u0007","is_mandatory":true,"title":"Name of the resource"},"privateIpGoogleAccess":{"name":"privateIpGoogleAccess","type":"\u0004","is_mandatory":true,"title":"VMs in this subnet can access Google services without assigned external IP addresses"},"privateIpv6GoogleAccess":{"name":"privateIpv6GoogleAccess","type":"\u0007","is_mandatory":true,"title":"VMs in this subnet can access Google services without assigned external IPv6 addresses"},"projectId":{"name":"projectId","type":"\u0007","is_mandatory":true,"title":"Project ID"},"purpose":{"name":"purpose","type":"\u0007","is_mandatory":true,"title":"Purpose of the resource"},"region":{"name":"region","type":"\u001bgcp.project.computeService.region","title":"Region"},"regionUrl":{"name":"regionUrl","type":"\u0007","is_mandatory":true,"title":"Region URL"},"role":{"name":"role","type":"\u0007","is_mandatory":true,"title":"Role of subnetwork"},"stackType":{"name":"stackType","type":"\u0007","is_mandatory":true,"title":"Stack type for the subnet"},"state":{"name":"state","type":"\u0007","is_mandatory":true,"title":"State of the subnetwork"}},"title":"GCP Compute VPC Network Partitioning","private":true,"defaults":"name"},"gcp.project.computeService.subnetwork.logConfig":{"id":"gcp.project.computeService.subnetwork.logConfig","name":"gcp.project.computeService.subnetwork.logConfig","fields":{"aggregationInterval":{"name":"aggregationInterval","type":"\u0007","is_mandatory":true,"title":"Toggles the aggregation interval for collecting flow logs"},"enable":{"name":"enable","type":"\u0004","is_mandatory":true,"title":"Whether to enable flow logging for this subnetwork"},"filterExpression":{"name":"filterExpression","type":"\u0007","is_mandatory":true,"title":"Used to define which VPC flow logs should be exported to Cloud Logging"},"flowSampling":{"name":"flowSampling","type":"\u0006","is_mandatory":true,"title":"Sampling rate of VPC flow logs within the subnetwork where 1.0 means all collected logs are reported and 0.0 means no logs are reported"},"id":{"name":"id","type":"\u0007","is_mandatory":true,"title":"Internal ID"},"metadata":{"name":"metadata","type":"\u0007","is_mandatory":true,"title":"Whether all, none or a subset of metadata should be added to the reported VPC flow logs"},"metadataFields":{"name":"metadataFields","type":"\u0019\u0007","is_mandatory":true,"title":"Metadata fields to be added to the reported VPC flow logs"}},"title":"GCP Compute VPC Network Partitioning log configuration","private":true,"defaults":"enable"},"gcp.project.computeService.zone":{"id":"gcp.project.computeService.zone","name":"gcp.project.computeService.zone","fields":{"created":{"name":"created","type":"\t","is_mandatory":true,"title":"Creation timestamp"},"description":{"name":"description","type":"\u0007","is_mandatory":true,"title":"Resource Description"},"id":{"name":"id","type":"\u0007","is_mandatory":true,"title":"Unique identifier"},"name":{"name":"name","type":"\u0007","is_mandatory":true,"title":"Name of the resource"},"status":{"name":"status","type":"\u0007","is_mandatory":true,"title":"Status of the zone"}},"title":"GCP Compute Zone","private":true,"defaults":"name"},"gcp.project.dataprocService":{"id":"gcp.project.dataprocService","name":"gcp.project.dataprocService","fields":{"clusters":{"name":"clusters","type":"\u0019\u001bgcp.project.dataprocService.cluster","title":"List of Dataproc clusters in the current project"},"projectId":{"name":"projectId","type":"\u0007","is_mandatory":true,"title":"Project ID"},"regions":{"name":"regions","type":"\u0019\u0007","title":"List of available regions"}},"title":"GCP Dataproc Resources","private":true},"gcp.project.dataprocService.cluster":{"id":"gcp.project.dataprocService.cluster","name":"gcp.project.dataprocService.cluster","fields":{"config":{"name":"config","type":"\u001bgcp.project.dataprocService.cluster.config","is_mandatory":true,"title":"Cluster configuration"},"labels":{"name":"labels","type":"\u001a\u0007\u0007","is_mandatory":true,"title":"Labels associated with the cluster"},"metrics":{"name":"metrics","type":"\n","is_mandatory":true,"title":"Contains cluster daemon metrics such as HDF and YARN stats"},"name":{"name":"name","type":"\u0007","is_mandatory":true,"title":"Cluster name"},"projectId":{"name":"projectId","type":"\u0007","is_mandatory":true,"title":"Project ID"},"status":{"name":"status","type":"\u001bgcp.project.dataprocService.cluster.status","is_mandatory":true,"title":"Cluster status"},"statusHistory":{"name":"statusHistory","type":"\u0019\u001bgcp.project.dataprocService.cluster.status","is_mandatory":true,"title":"Previous cluster status"},"uuid":{"name":"uuid","type":"\u0007","is_mandatory":true,"title":"Cluster UUID"},"virtualClusterConfig":{"name":"virtualClusterConfig","type":"\u001bgcp.project.dataprocService.cluster.virtualClusterConfig","is_mandatory":true,"title":"Virtual cluster config used when creating a Dataproc cluster that does not directly control the underlying compute resources"}},"title":"GCP Dataproc cluster","private":true,"defaults":"name"},"gcp.project.dataprocService.cluster.config":{"id":"gcp.project.dataprocService.cluster.config","name":"gcp.project.dataprocService.cluster.config","fields":{"autoscaling":{"name":"autoscaling","type":"\n","is_mandatory":true,"title":"Autoscaling configuration for the policy associated with the cluster"},"configBucket":{"name":"configBucket","type":"\u0007","is_mandatory":true,"title":"Cloud Storage bucket used to stage job dependencies, config files, and job driver console output"},"encryption":{"name":"encryption","type":"\n","is_mandatory":true,"title":"Encryption configuration"},"endpoint":{"name":"endpoint","type":"\n","is_mandatory":true,"title":"Port/endpoint configuration"},"gceCluster":{"name":"gceCluster","type":"\u001bgcp.project.dataprocService.cluster.config.gceCluster","is_mandatory":true,"title":"Shared Compute Engine configuration"},"gkeCluster":{"name":"gkeCluster","type":"\u001bgcp.project.dataprocService.cluster.config.gkeCluster","is_mandatory":true,"title":"Kubernetes Engine config for Dataproc clusters deployed to Kubernetes"},"initializationActions":{"name":"initializationActions","type":"\u0019\n","is_mandatory":true,"title":"Commands to execute on each node after config is completed"},"lifecycle":{"name":"lifecycle","type":"\u001bgcp.project.dataprocService.cluster.config.lifecycle","is_mandatory":true,"title":"Lifecycle configuration"},"master":{"name":"master","type":"\u001bgcp.project.dataprocService.cluster.config.instance","is_mandatory":true,"title":"Compute Engine config for the cluster's master instance"},"metastore":{"name":"metastore","type":"\n","is_mandatory":true,"title":"Metastore configuration"},"metrics":{"name":"metrics","type":"\n","is_mandatory":true,"title":"Dataproc metrics configuration"},"parentResourcePath":{"name":"parentResourcePath","type":"\u0007","is_mandatory":true,"title":"Parent resource path"},"secondaryWorker":{"name":"secondaryWorker","type":"\u001bgcp.project.dataprocService.cluster.config.instance","is_mandatory":true,"title":"Compute Engine configuration for the cluster's secondary worker instances"},"security":{"name":"security","type":"\n","is_mandatory":true,"title":"Security configuration"},"software":{"name":"software","type":"\n","is_mandatory":true,"title":"Cluster software configuration"},"tempBucket":{"name":"tempBucket","type":"\u0007","is_mandatory":true,"title":"Cloud Storage bucket used to store ephemeral cluster and jobs data"},"worker":{"name":"worker","type":"\u001bgcp.project.dataprocService.cluster.config.instance","is_mandatory":true,"title":"Compute Engine configuration for the cluster's worker instances"}},"title":"GCP Dataproc cluster config","private":true},"gcp.project.dataprocService.cluster.config.gceCluster":{"id":"gcp.project.dataprocService.cluster.config.gceCluster","name":"gcp.project.dataprocService.cluster.config.gceCluster","fields":{"confidentialInstance":{"name":"confidentialInstance","type":"\n","is_mandatory":true,"title":"Confidential instance configuration"},"id":{"name":"id","type":"\u0007","is_mandatory":true,"title":"Internal ID"},"internalIpOnly":{"name":"internalIpOnly","type":"\u0004","is_mandatory":true,"title":"Whether the cluster has only internal IP addresses"},"metadata":{"name":"metadata","type":"\u001a\u0007\u0007","is_mandatory":true,"title":"Compute Engine metadata entries"},"networkUri":{"name":"networkUri","type":"\u0007","is_mandatory":true,"title":"Compute Engine network to be used for machine communications"},"nodeGroupAffinity":{"name":"nodeGroupAffinity","type":"\n","is_mandatory":true,"title":"Node Group Affinity for sole-tenant clusters"},"privateIpv6GoogleAccess":{"name":"privateIpv6GoogleAccess","type":"\u0007","is_mandatory":true,"title":"Type of IPv6 access for the cluster"},"reservationAffinity":{"name":"reservationAffinity","type":"\u001bgcp.project.dataprocService.cluster.config.gceCluster.reservationAffinity","is_mandatory":true,"title":"Reservation affinity for consuming zonal reservations"},"serviceAccount":{"name":"serviceAccount","type":"\u0007","is_mandatory":true,"title":"Dataproc service account used by the Dataproc cluster VM instances"},"serviceAccountScopes":{"name":"serviceAccountScopes","type":"\u0019\u0007","is_mandatory":true,"title":"URIs of service account scopes to be included in Compute Engine instances"},"shieldedInstanceConfig":{"name":"shieldedInstanceConfig","type":"\u001bgcp.project.dataprocService.cluster.config.gceCluster.shieldedInstanceConfig","is_mandatory":true,"title":"Shielded instance config for clusters using Compute Engine Shielded VMs"},"subnetworkUri":{"name":"subnetworkUri","type":"\u0007","is_mandatory":true,"title":"Compute Engine subnetwork to use for machine communications"},"tags":{"name":"tags","type":"\u0019\u0007","is_mandatory":true,"title":"Compute Engine tags"},"zoneUri":{"name":"zoneUri","type":"\u0007","is_mandatory":true,"title":"Zone where the Compute Engine cluster is located"}},"title":"GCP Dataproc cluster endpoint config","private":true},"gcp.project.dataprocService.cluster.config.gceCluster.reservationAffinity":{"id":"gcp.project.dataprocService.cluster.config.gceCluster.reservationAffinity","name":"gcp.project.dataprocService.cluster.config.gceCluster.reservationAffinity","fields":{"consumeReservationType":{"name":"consumeReservationType","type":"\u0007","is_mandatory":true,"title":"Type of reservation to consume"},"id":{"name":"id","type":"\u0007","is_mandatory":true,"title":"Internal ID"},"key":{"name":"key","type":"\u0007","is_mandatory":true,"title":"Corresponds to the label key of the reservation resource"},"values":{"name":"values","type":"\u0019\u0007","is_mandatory":true,"title":"Corresponds to the label values of the reservation resource"}},"title":"GCP Dataproc cluster GCE Cluster reservation affinity config","private":true},"gcp.project.dataprocService.cluster.config.gceCluster.shieldedInstanceConfig":{"id":"gcp.project.dataprocService.cluster.config.gceCluster.shieldedInstanceConfig","name":"gcp.project.dataprocService.cluster.config.gceCluster.shieldedInstanceConfig","fields":{"enableIntegrityMonitoring":{"name":"enableIntegrityMonitoring","type":"\u0004","is_mandatory":true,"title":"Whether the instances have integrity monitoring enabled"},"enableSecureBoot":{"name":"enableSecureBoot","type":"\u0004","is_mandatory":true,"title":"Whether the instances have Secure Boot enabled"},"enableVtpm":{"name":"enableVtpm","type":"\u0004","is_mandatory":true,"title":"Whether the instances have the vTPM enabled"},"id":{"name":"id","type":"\u0007","is_mandatory":true,"title":"Internal ID"}},"title":"GCP Dataproc cluster GCE Cluster shielded instance config","private":true},"gcp.project.dataprocService.cluster.config.gkeCluster":{"id":"gcp.project.dataprocService.cluster.config.gkeCluster","name":"gcp.project.dataprocService.cluster.config.gkeCluster","fields":{"gkeClusterTarget":{"name":"gkeClusterTarget","type":"\u0007","is_mandatory":true,"title":"Target GKE cluster"},"id":{"name":"id","type":"\u0007","is_mandatory":true,"title":"Internal ID"},"nodePoolTarget":{"name":"nodePoolTarget","type":"\u0019\n","is_mandatory":true,"title":"GKE node pools where workloads are scheduled"}},"title":"GCP Dataproc cluster GKE Cluster config","private":true},"gcp.project.dataprocService.cluster.config.instance":{"id":"gcp.project.dataprocService.cluster.config.instance","name":"gcp.project.dataprocService.cluster.config.instance","fields":{"accelerators":{"name":"accelerators","type":"\u0019\n","is_mandatory":true,"title":"Compute Engine accelerators"},"diskConfig":{"name":"diskConfig","type":"\u001bgcp.project.dataprocService.cluster.config.instance.diskConfig","is_mandatory":true,"title":"Disk options"},"id":{"name":"id","type":"\u0007","is_mandatory":true,"title":"Internal ID"},"imageUri":{"name":"imageUri","type":"\u0007","is_mandatory":true,"title":"Compute Engine imager resource used for cluster instances"},"instanceNames":{"name":"instanceNames","type":"\u0019\u0007","is_mandatory":true,"title":"List of instance names"},"instanceReferences":{"name":"instanceReferences","type":"\u0019\n","is_mandatory":true,"title":"List of references to Compute Engine instances"},"isPreemptible":{"name":"isPreemptible","type":"\u0004","is_mandatory":true,"title":"Whether the instance group contains preemptible instances"},"machineTypeUri":{"name":"machineTypeUri","type":"\u0007","is_mandatory":true,"title":"Compute Engine machine type used for cluster instances"},"managedGroupConfig":{"name":"managedGroupConfig","type":"\n","is_mandatory":true,"title":"Config for Compute Engine Instance Group Manager that manages this group"},"minCpuPlatform":{"name":"minCpuPlatform","type":"\u0007","is_mandatory":true,"title":"Minimum CPU platform for the instance group"},"numInstances":{"name":"numInstances","type":"\u0005","is_mandatory":true,"title":"Number of VM instances in the instance group"},"preemptibility":{"name":"preemptibility","type":"\u0007","is_mandatory":true,"title":"The preemptibility of the instance group"}},"title":"GCP Dataproc cluster instance config","private":true},"gcp.project.dataprocService.cluster.config.instance.diskConfig":{"id":"gcp.project.dataprocService.cluster.config.instance.diskConfig","name":"gcp.project.dataprocService.cluster.config.instance.diskConfig","fields":{"bootDiskSizeGb":{"name":"bootDiskSizeGb","type":"\u0005","is_mandatory":true,"title":"Size in GB of the boot disk"},"bootDiskType":{"name":"bootDiskType","type":"\u0007","is_mandatory":true,"title":"Type of the boot disk"},"id":{"name":"id","type":"\u0007","is_mandatory":true,"title":"Internal ID"},"localSsdInterface":{"name":"localSsdInterface","type":"\u0007","is_mandatory":true,"title":"Interface type of local SSDs"},"numLocalSsds":{"name":"numLocalSsds","type":"\u0005","is_mandatory":true,"title":"Number of attached SSDs"}},"title":"GCP Dataproc cluster instance disk config","private":true},"gcp.project.dataprocService.cluster.config.lifecycle":{"id":"gcp.project.dataprocService.cluster.config.lifecycle","name":"gcp.project.dataprocService.cluster.config.lifecycle","fields":{"autoDeleteTime":{"name":"autoDeleteTime","type":"\u0007","is_mandatory":true,"title":"Time when the cluster will be auto-deleted"},"autoDeleteTtl":{"name":"autoDeleteTtl","type":"\u0007","is_mandatory":true,"title":"Lifetime duration of the cluster"},"id":{"name":"id","type":"\u0007","is_mandatory":true,"title":"Internal ID"},"idleDeleteTtl":{"name":"idleDeleteTtl","type":"\u0007","is_mandatory":true,"title":"Duration to keep the cluster alive while idling"},"idleStartTime":{"name":"idleStartTime","type":"\u0007","is_mandatory":true,"title":"Time when the cluster will be auto-resumed"}},"title":"GCP Dataproc cluster lifecycle config","private":true},"gcp.project.dataprocService.cluster.status":{"id":"gcp.project.dataprocService.cluster.status","name":"gcp.project.dataprocService.cluster.status","fields":{"detail":{"name":"detail","type":"\u0007","is_mandatory":true,"title":"Details of the cluster's state"},"id":{"name":"id","type":"\u0007","is_mandatory":true,"title":"Internal ID"},"started":{"name":"started","type":"\t","is_mandatory":true,"title":"Started timestamp"},"state":{"name":"state","type":"\u0007","is_mandatory":true,"title":"Cluster's state"},"substate":{"name":"substate","type":"\u0007","is_mandatory":true,"title":"Additional state information that includes status reported by the agent"}},"title":"GCP Dataproc cluster status","private":true,"defaults":"state"},"gcp.project.dataprocService.cluster.virtualClusterConfig":{"id":"gcp.project.dataprocService.cluster.virtualClusterConfig","name":"gcp.project.dataprocService.cluster.virtualClusterConfig","fields":{"auxiliaryServices":{"name":"auxiliaryServices","type":"\n","is_mandatory":true,"title":"Auxiliary services configuration"},"kubernetesCluster":{"name":"kubernetesCluster","type":"\n","is_mandatory":true,"title":"Kubernetes cluster configuration"},"parentResourcePath":{"name":"parentResourcePath","type":"\u0007","is_mandatory":true,"title":"Parent resource path"},"stagingBucket":{"name":"stagingBucket","type":"\u0007","is_mandatory":true,"title":"Cloud Storage bucket used to stage job dependencies, config files, and job driver console output"}},"title":"GCP Dataproc cluster virtual cluster config","private":true},"gcp.project.dnsService":{"id":"gcp.project.dnsService","name":"gcp.project.dnsService","fields":{"managedZones":{"name":"managedZones","type":"\u0019\u001bgcp.project.dnsService.managedzone","title":"Cloud DNS managed zone in project"},"policies":{"name":"policies","type":"\u0019\u001bgcp.project.dnsService.policy","title":"Cloud DNS rules in project"},"projectId":{"name":"projectId","type":"\u0007","is_mandatory":true,"title":"Project ID"}},"title":"GCP Cloud DNS","private":true},"gcp.project.dnsService.managedzone":{"id":"gcp.project.dnsService.managedzone","name":"gcp.project.dnsService.managedzone","fields":{"created":{"name":"created","type":"\t","is_mandatory":true,"title":"Creation timestamp"},"description":{"name":"description","type":"\u0007","is_mandatory":true,"title":"User-friendly description of the resource"},"dnsName":{"name":"dnsName","type":"\u0007","is_mandatory":true,"title":"DNS name of this managed zone"},"dnssecConfig":{"name":"dnssecConfig","type":"\n","is_mandatory":true,"title":"DNSSEC configuration"},"id":{"name":"id","type":"\u0007","is_mandatory":true,"title":"Managed Zone ID"},"name":{"name":"name","type":"\u0007","is_mandatory":true,"title":"User-friendly name of the resource"},"nameServerSet":{"name":"nameServerSet","type":"\u0007","is_mandatory":true,"title":"Optionally specifies the NameServerSet for this ManagedZone"},"nameServers":{"name":"nameServers","type":"\u0019\u0007","is_mandatory":true,"title":"Delegated to these virtual name servers"},"projectId":{"name":"projectId","type":"\u0007","is_mandatory":true,"title":"Project ID"},"recordSets":{"name":"recordSets","type":"\u0019\u001bgcp.project.dnsService.recordset","title":"Cloud DNS RecordSet in zone"},"visibility":{"name":"visibility","type":"\u0007","is_mandatory":true,"title":"Zone's visibility"}},"title":"Cloud DNS managed zone is a resource that represents a DNS zone hosted by the Cloud DNS service","private":true,"defaults":"name"},"gcp.project.dnsService.policy":{"id":"gcp.project.dnsService.policy","name":"gcp.project.dnsService.policy","fields":{"description":{"name":"description","type":"\u0007","is_mandatory":true,"title":"User-friendly description of the resource"},"enableInboundForwarding":{"name":"enableInboundForwarding","type":"\u0004","is_mandatory":true,"title":"Indicates if DNS queries sent by VMs or applications over VPN connections are allowed"},"enableLogging":{"name":"enableLogging","type":"\u0004","is_mandatory":true,"title":"Indicates if logging is enabled"},"id":{"name":"id","type":"\u0007","is_mandatory":true,"title":"Managed Zone ID"},"name":{"name":"name","type":"\u0007","is_mandatory":true,"title":"User-friendly name of the resource"},"networkNames":{"name":"networkNames","type":"\u0019\u0007","is_mandatory":true,"title":"List of network names specifying networks to which this policy is applied"},"networks":{"name":"networks","type":"\u0019\u001bgcp.project.computeService.network","title":"List of networks to which this policy is applied"},"projectId":{"name":"projectId","type":"\u0007","is_mandatory":true,"title":"Project ID"}},"title":"Cloud DNS rules applied to one or more Virtual Private Cloud resources","private":true,"defaults":"name"},"gcp.project.dnsService.recordset":{"id":"gcp.project.dnsService.recordset","name":"gcp.project.dnsService.recordset","fields":{"name":{"name":"name","type":"\u0007","is_mandatory":true,"title":"User-friendly name of the resource"},"projectId":{"name":"projectId","type":"\u0007","is_mandatory":true,"title":"Project ID"},"rrdatas":{"name":"rrdatas","type":"\u0019\u0007","is_mandatory":true,"title":"Rrdatas: As defined in RFC 1035 (section 5) and RFC 1034 (section 3.6.1)"},"signatureRrdatas":{"name":"signatureRrdatas","type":"\u0019\u0007","is_mandatory":true,"title":"SignatureRrdatas: As defined in RFC 4034"},"ttl":{"name":"ttl","type":"\u0005","is_mandatory":true,"title":"Number of seconds that this ResourceRecordSet can be cached by resolvers"},"type":{"name":"type","type":"\u0007","is_mandatory":true,"title":"The identifier of a supported record type"}},"title":"Cloud DNS RecordSet","private":true,"defaults":"name"},"gcp.project.gkeService":{"id":"gcp.project.gkeService","name":"gcp.project.gkeService","fields":{"clusters":{"name":"clusters","type":"\u0019\u001bgcp.project.gkeService.cluster","title":"List of GKE clusters in the current project"},"projectId":{"name":"projectId","type":"\u0007","is_mandatory":true,"title":"Project ID"}},"title":"GCP GKE","private":true},"gcp.project.gkeService.cluster":{"id":"gcp.project.gkeService.cluster","name":"gcp.project.gkeService.cluster","fields":{"autopilotEnabled":{"name":"autopilotEnabled","type":"\u0004","is_mandatory":true,"title":"Whether Autopilot is enabled for the cluster"},"clusterIpv4Cidr":{"name":"clusterIpv4Cidr","type":"\u0007","is_mandatory":true,"title":"The IP address range of the container pods in this cluster"},"created":{"name":"created","type":"\t","is_mandatory":true,"title":"Creation time"},"currentMasterVersion":{"name":"currentMasterVersion","type":"\u0007","is_mandatory":true,"title":"The current software version of the master endpoint"},"description":{"name":"description","type":"\u0007","is_mandatory":true,"title":"Optional description for the cluster"},"enableKubernetesAlpha":{"name":"enableKubernetesAlpha","type":"\u0004","is_mandatory":true,"title":"Enable Kubernetes alpha features"},"endpoint":{"name":"endpoint","type":"\u0007","is_mandatory":true,"title":"The IP address of this cluster's master endpoint"},"expirationTime":{"name":"expirationTime","type":"\t","is_mandatory":true,"title":"The time the cluster will be automatically deleted in"},"id":{"name":"id","type":"\u0007","is_mandatory":true,"title":"Unique identifier for the cluster"},"initialClusterVersion":{"name":"initialClusterVersion","type":"\u0007","is_mandatory":true,"title":"The initial Kubernetes version for this cluster"},"locations":{"name":"locations","type":"\u0019\u0007","is_mandatory":true,"title":"The list of Google Compute Engine zones in which the cluster's nodes should be located."},"loggingService":{"name":"loggingService","type":"\u0007","is_mandatory":true,"title":"The logging service the cluster should use to write logs"},"monitoringService":{"name":"monitoringService","type":"\u0007","is_mandatory":true,"title":"The monitoring service the cluster should use to write metrics"},"name":{"name":"name","type":"\u0007","is_mandatory":true,"title":"The name of the cluster"},"network":{"name":"network","type":"\u0007","is_mandatory":true,"title":"The name of the Google Compute Engine network to which the cluster is connected"},"nodePools":{"name":"nodePools","type":"\u0019\u001bgcp.project.gkeService.cluster.nodepool","is_mandatory":true,"title":"The list of node pools for the cluster"},"projectId":{"name":"projectId","type":"\u0007","is_mandatory":true,"title":"Project ID"},"resourceLabels":{"name":"resourceLabels","type":"\u001a\u0007\u0007","is_mandatory":true,"title":"The resource labels for the cluster to use to annotate any related Google Compute Engine resources."},"status":{"name":"status","type":"\u0007","is_mandatory":true,"title":"The current status of this cluster"},"subnetwork":{"name":"subnetwork","type":"\u0007","is_mandatory":true,"title":"The name of the Google Compute Engine subnetwork to which the cluster is connected."},"zone":{"name":"zone","type":"\u0007","is_mandatory":true,"title":"The name of the Google Compute Engine zone in which the cluster resides"}},"title":"GCP GKE Cluster","private":true,"defaults":"name"},"gcp.project.gkeService.cluster.nodepool":{"id":"gcp.project.gkeService.cluster.nodepool","name":"gcp.project.gkeService.cluster.nodepool","fields":{"config":{"name":"config","type":"\u001bgcp.project.gkeService.cluster.nodepool.config","is_mandatory":true,"title":"The node configuration of the pool"},"id":{"name":"id","type":"\u0007","is_mandatory":true,"title":"Internal ID"},"initialNodeCount":{"name":"initialNodeCount","type":"\u0005","is_mandatory":true,"title":"The initial node count for the pool"},"instanceGroupUrls":{"name":"instanceGroupUrls","type":"\u0019\u0007","is_mandatory":true,"title":"The resource URLs of the managed instance groups associated with this node pool"},"locations":{"name":"locations","type":"\u0019\u0007","is_mandatory":true,"title":"The list of Google Compute Engine zones in which the NodePool's nodes should be located."},"name":{"name":"name","type":"\u0007","is_mandatory":true,"title":"The name of the node pool"},"networkConfig":{"name":"networkConfig","type":"\u001bgcp.project.gkeService.cluster.nodepool.networkConfig","is_mandatory":true,"title":"Networking configuration for this node pool."},"status":{"name":"status","type":"\u0007","is_mandatory":true,"title":"The current status of this node pool"},"version":{"name":"version","type":"\u0007","is_mandatory":true,"title":"The Kubernetes version"}},"title":"GKE Cluster Node Pool","private":true,"defaults":"name"},"gcp.project.gkeService.cluster.nodepool.config":{"id":"gcp.project.gkeService.cluster.nodepool.config","name":"gcp.project.gkeService.cluster.nodepool.config","fields":{"accelerators":{"name":"accelerators","type":"\u0019\u001bgcp.project.gkeService.cluster.nodepool.config.accelerator","is_mandatory":true,"title":"A list of hardware accelerators to be attached to each node"},"advancedMachineFeatures":{"name":"advancedMachineFeatures","type":"\u001bgcp.project.gkeService.cluster.nodepool.config.advancedMachineFeatures","is_mandatory":true,"title":"Advanced features for the Compute Engine VM"},"bootDiskKmsKey":{"name":"bootDiskKmsKey","type":"\u0007","is_mandatory":true,"title":"The Customer Managed Encryption Key used to encrypt the boot disk attached to each node"},"confidentialNodes":{"name":"confidentialNodes","type":"\u001bgcp.project.gkeService.cluster.nodepool.config.confidentialNodes","is_mandatory":true,"title":"Confidential nodes configuration"},"diskSizeGb":{"name":"diskSizeGb","type":"\u0005","is_mandatory":true,"title":"Size of the disk attached to each node, specified in GB"},"diskType":{"name":"diskType","type":"\u0007","is_mandatory":true,"title":"Type of the disk attached to each node"},"gcfsConfig":{"name":"gcfsConfig","type":"\u001bgcp.project.gkeService.cluster.nodepool.config.gcfsConfig","is_mandatory":true,"title":"Google Container File System (image streaming) configuration"},"gvnicConfig":{"name":"gvnicConfig","type":"\u001bgcp.project.gkeService.cluster.nodepool.config.gvnicConfig","is_mandatory":true,"title":"GVNIC configuration"},"id":{"name":"id","type":"\u0007","is_mandatory":true,"title":"Internal ID"},"imageType":{"name":"imageType","type":"\u0007","is_mandatory":true,"title":"The image type to use for this node"},"kubeletConfig":{"name":"kubeletConfig","type":"\u001bgcp.project.gkeService.cluster.nodepool.config.kubeletConfig","is_mandatory":true,"title":"Node kubelet configs"},"labels":{"name":"labels","type":"\u001a\u0007\u0007","is_mandatory":true,"title":"The map of Kubernetes labels to be applied to each node"},"linuxNodeConfig":{"name":"linuxNodeConfig","type":"\u001bgcp.project.gkeService.cluster.nodepool.config.linuxNodeConfig","is_mandatory":true,"title":"Parameters that can be configured on Linux nodes"},"localSsdCount":{"name":"localSsdCount","type":"\u0005","is_mandatory":true,"title":"The number of local SSD disks to be attached to the node"},"machineType":{"name":"machineType","type":"\u0007","is_mandatory":true,"title":"The name of a Google Compute Engine machine type"},"metadata":{"name":"metadata","type":"\u001a\u0007\u0007","is_mandatory":true,"title":"The metadata key/value pairs assigned to instances in the cluster"},"minCpuPlatform":{"name":"minCpuPlatform","type":"\u0007","is_mandatory":true,"title":"Minimum CPU platform to be used by this instance"},"oauthScopes":{"name":"oauthScopes","type":"\u0019\u0007","is_mandatory":true,"title":"The set of Google API scopes to be made available on all of the node VMs under the \"default\" service account"},"preemptible":{"name":"preemptible","type":"\u0004","is_mandatory":true,"title":"Whether the nodes are created as preemptible VM instances."},"sandboxConfig":{"name":"sandboxConfig","type":"\u001bgcp.project.gkeService.cluster.nodepool.config.sandboxConfig","is_mandatory":true,"title":"Sandbox configuration for this node"},"serviceAccount":{"name":"serviceAccount","type":"\u0007","is_mandatory":true,"title":"The Google Cloud Platform Service Account to be used by the node VMs"},"shieldedInstanceConfig":{"name":"shieldedInstanceConfig","type":"\u001bgcp.project.gkeService.cluster.nodepool.config.shieldedInstanceConfig","is_mandatory":true,"title":"Shielded instance configuration"},"spot":{"name":"spot","type":"\u0004","is_mandatory":true,"title":"Spot flag for enabling Spot VM, which is a rebrand of the existing preemptible flag"},"tags":{"name":"tags","type":"\u0019\u0007","is_mandatory":true,"title":"The list of instance tags applied to all nodes"},"taints":{"name":"taints","type":"\u0019\u001bgcp.project.gkeService.cluster.nodepool.config.nodeTaint","is_mandatory":true,"title":"List of Kubernetes taints to be applied to each node"},"workloadMetadataMode":{"name":"workloadMetadataMode","type":"\u0007","is_mandatory":true,"title":"The workload metadata mode for this node"}},"title":"GCP GKE node pool configuration","private":true,"defaults":"machineType diskSizeGb"},"gcp.project.gkeService.cluster.nodepool.config.accelerator":{"id":"gcp.project.gkeService.cluster.nodepool.config.accelerator","name":"gcp.project.gkeService.cluster.nodepool.config.accelerator","fields":{"count":{"name":"count","type":"\u0005","is_mandatory":true,"title":"The number of the accelerator cards exposed to an instance"},"gpuPartitionSize":{"name":"gpuPartitionSize","type":"\u0007","is_mandatory":true,"title":"Size of partitions to create on the GPU"},"gpuSharingConfig":{"name":"gpuSharingConfig","type":"\u001bgcp.project.gkeService.cluster.nodepool.config.accelerator.gpuSharingConfig","is_mandatory":true,"title":"The configuration for GPU sharing"},"id":{"name":"id","type":"\u0007","is_mandatory":true,"title":"Internal ID"},"type":{"name":"type","type":"\u0007","is_mandatory":true,"title":"The accelerator type resource name"}},"title":"GCP GKE node pool hardware accelerators configuration","private":true,"defaults":"type count"},"gcp.project.gkeService.cluster.nodepool.config.accelerator.gpuSharingConfig":{"id":"gcp.project.gkeService.cluster.nodepool.config.accelerator.gpuSharingConfig","name":"gcp.project.gkeService.cluster.nodepool.config.accelerator.gpuSharingConfig","fields":{"id":{"name":"id","type":"\u0007","is_mandatory":true,"title":"Internal ID"},"maxSharedClientsPerGpu":{"name":"maxSharedClientsPerGpu","type":"\u0005","is_mandatory":true,"title":"The max number of containers that can share a GPU"},"strategy":{"name":"strategy","type":"\u0007","is_mandatory":true,"title":"The GPU sharing strategy"}},"title":"GPU sharing configuration","private":true,"defaults":"strategy"},"gcp.project.gkeService.cluster.nodepool.config.advancedMachineFeatures":{"id":"gcp.project.gkeService.cluster.nodepool.config.advancedMachineFeatures","name":"gcp.project.gkeService.cluster.nodepool.config.advancedMachineFeatures","fields":{"id":{"name":"id","type":"\u0007","is_mandatory":true,"title":"Internal ID"},"threadsPerCore":{"name":"threadsPerCore","type":"\u0005","is_mandatory":true,"title":"The number of threads per physical core. If unset, the maximum number of threads supported per core by the underlying processor is assumed"}},"title":"GCP GKE node pool advanced machine features configuration","private":true,"defaults":"threadsPerCore"},"gcp.project.gkeService.cluster.nodepool.config.confidentialNodes":{"id":"gcp.project.gkeService.cluster.nodepool.config.confidentialNodes","name":"gcp.project.gkeService.cluster.nodepool.config.confidentialNodes","fields":{"enabled":{"name":"enabled","type":"\u0004","is_mandatory":true,"title":"Whether to use confidential nodes"},"id":{"name":"id","type":"\u0007","is_mandatory":true,"title":"Internal ID"}},"title":"GCP GKE node pool confidential nodes configuration","private":true,"defaults":"enabled"},"gcp.project.gkeService.cluster.nodepool.config.gcfsConfig":{"id":"gcp.project.gkeService.cluster.nodepool.config.gcfsConfig","name":"gcp.project.gkeService.cluster.nodepool.config.gcfsConfig","fields":{"enabled":{"name":"enabled","type":"\u0004","is_mandatory":true,"title":"Whether to use GCFS"},"id":{"name":"id","type":"\u0007","is_mandatory":true,"title":"Internal ID"}},"title":"GCP GKE node pool GCFS configuration","private":true,"defaults":"enabled"},"gcp.project.gkeService.cluster.nodepool.config.gvnicConfig":{"id":"gcp.project.gkeService.cluster.nodepool.config.gvnicConfig","name":"gcp.project.gkeService.cluster.nodepool.config.gvnicConfig","fields":{"enabled":{"name":"enabled","type":"\u0004","is_mandatory":true,"title":"Whether to use GVNIC"},"id":{"name":"id","type":"\u0007","is_mandatory":true,"title":"Internal ID"}},"title":"GCP GKE node pool GVNIC configuration","private":true,"defaults":"enabled"},"gcp.project.gkeService.cluster.nodepool.config.kubeletConfig":{"id":"gcp.project.gkeService.cluster.nodepool.config.kubeletConfig","name":"gcp.project.gkeService.cluster.nodepool.config.kubeletConfig","fields":{"cpuCfsQuotaPeriod":{"name":"cpuCfsQuotaPeriod","type":"\u0007","is_mandatory":true,"title":"Set the CPU CFS quota period value 'cpu.cfs_period_us'"},"cpuManagerPolicy":{"name":"cpuManagerPolicy","type":"\u0007","is_mandatory":true,"title":"Control the CPU management policy on the node"},"id":{"name":"id","type":"\u0007","is_mandatory":true,"title":"Internal ID"},"podPidsLimit":{"name":"podPidsLimit","type":"\u0005","is_mandatory":true,"title":"Set the Pod PID limits"}},"title":"GCP GKE node pool kubelet configuration","private":true,"defaults":"cpuManagerPolicy podPidsLimit"},"gcp.project.gkeService.cluster.nodepool.config.linuxNodeConfig":{"id":"gcp.project.gkeService.cluster.nodepool.config.linuxNodeConfig","name":"gcp.project.gkeService.cluster.nodepool.config.linuxNodeConfig","fields":{"id":{"name":"id","type":"\u0007","is_mandatory":true,"title":"Internal ID"},"sysctls":{"name":"sysctls","type":"\u001a\u0007\u0007","is_mandatory":true,"title":"The Linux kernel parameters to be applied to the nodes and all pods running on them"}},"title":"GCP GKE node pool parameters that can be configured on Linux nodes","private":true,"defaults":"sysctls"},"gcp.project.gkeService.cluster.nodepool.config.nodeTaint":{"id":"gcp.project.gkeService.cluster.nodepool.config.nodeTaint","name":"gcp.project.gkeService.cluster.nodepool.config.nodeTaint","fields":{"effect":{"name":"effect","type":"\u0007","is_mandatory":true,"title":"Effect for the taint"},"id":{"name":"id","type":"\u0007","is_mandatory":true,"title":"Internal ID"},"key":{"name":"key","type":"\u0007","is_mandatory":true,"title":"Key for the taint"},"value":{"name":"value","type":"\u0007","is_mandatory":true,"title":"Value for the taint"}},"title":"GCP GKE Kubernetes node taint","private":true,"defaults":"key value effect"},"gcp.project.gkeService.cluster.nodepool.config.sandboxConfig":{"id":"gcp.project.gkeService.cluster.nodepool.config.sandboxConfig","name":"gcp.project.gkeService.cluster.nodepool.config.sandboxConfig","fields":{"id":{"name":"id","type":"\u0007","is_mandatory":true,"title":"Internal ID"},"type":{"name":"type","type":"\u0007","is_mandatory":true,"title":"Type of the sandbox to use for this node"}},"title":"GCP GKE node pool sandbox configuration","private":true,"defaults":"type"},"gcp.project.gkeService.cluster.nodepool.config.shieldedInstanceConfig":{"id":"gcp.project.gkeService.cluster.nodepool.config.shieldedInstanceConfig","name":"gcp.project.gkeService.cluster.nodepool.config.shieldedInstanceConfig","fields":{"enableIntegrityMonitoring":{"name":"enableIntegrityMonitoring","type":"\u0004","is_mandatory":true,"title":"Defines whether the instance has integrity monitoring enabled"},"enableSecureBoot":{"name":"enableSecureBoot","type":"\u0004","is_mandatory":true,"title":"Defines whether the instance has Secure Boot enabled"},"id":{"name":"id","type":"\u0007","is_mandatory":true,"title":"Internal ID"}},"title":"GCP GKE node pool shielded instance configuration","private":true,"defaults":"enableSecureBoot enableIntegrityMonitoring"},"gcp.project.gkeService.cluster.nodepool.networkConfig":{"id":"gcp.project.gkeService.cluster.nodepool.networkConfig","name":"gcp.project.gkeService.cluster.nodepool.networkConfig","fields":{"id":{"name":"id","type":"\u0007","is_mandatory":true,"title":"Internal ID"},"performanceConfig":{"name":"performanceConfig","type":"\u001bgcp.project.gkeService.cluster.nodepool.networkConfig.performanceConfig","is_mandatory":true,"title":"Network performance tier configuration"},"podIpv4CidrBlock":{"name":"podIpv4CidrBlock","type":"\u0007","is_mandatory":true,"title":"The IP address range for pod IPs in this node pool"},"podRange":{"name":"podRange","type":"\u0007","is_mandatory":true,"title":"The ID of the secondary range for pod IPs"}},"title":"GCP GKE node pool-level network configuration","private":true,"defaults":"podRange podIpv4CidrBlock"},"gcp.project.gkeService.cluster.nodepool.networkConfig.performanceConfig":{"id":"gcp.project.gkeService.cluster.nodepool.networkConfig.performanceConfig","name":"gcp.project.gkeService.cluster.nodepool.networkConfig.performanceConfig","fields":{"id":{"name":"id","type":"\u0007","is_mandatory":true,"title":"Internal ID"},"totalEgressBandwidthTier":{"name":"totalEgressBandwidthTier","type":"\u0007","is_mandatory":true,"title":"Specifies the total network bandwidth tier for the node pool"}},"title":"GCP GKE node pool network performance configuration","private":true,"defaults":"totalEgressBandwidthTier"},"gcp.project.iamService":{"id":"gcp.project.iamService","name":"gcp.project.iamService","fields":{"projectId":{"name":"projectId","type":"\u0007","is_mandatory":true,"title":"Project ID"},"serviceAccounts":{"name":"serviceAccounts","type":"\u0019\u001bgcp.project.iamService.serviceAccount","title":"List of service accounts"}},"title":"GCP IAM Resources","private":true},"gcp.project.iamService.serviceAccount":{"id":"gcp.project.iamService.serviceAccount","name":"gcp.project.iamService.serviceAccount","fields":{"description":{"name":"description","type":"\u0007","is_mandatory":true,"title":"Service account description"},"disabled":{"name":"disabled","type":"\u0004","is_mandatory":true,"title":"Whether the service account is disabled"},"displayName":{"name":"displayName","type":"\u0007","is_mandatory":true,"title":"User-specified, human-readable name for the service account"},"email":{"name":"email","type":"\u0007","is_mandatory":true,"title":"Email address of the service account"},"keys":{"name":"keys","type":"\u0019\u001bgcp.project.iamService.serviceAccount.key","title":"Service account keys"},"name":{"name":"name","type":"\u0007","is_mandatory":true,"title":"Service account name"},"oauth2ClientId":{"name":"oauth2ClientId","type":"\u0007","is_mandatory":true,"title":"OAuth 2.0 client ID"},"projectId":{"name":"projectId","type":"\u0007","is_mandatory":true,"title":"Project ID"},"uniqueId":{"name":"uniqueId","type":"\u0007","is_mandatory":true,"title":"Unique, stable, numeric ID for the service account"}},"title":"GCP Service Account","private":true},"gcp.project.iamService.serviceAccount.key":{"id":"gcp.project.iamService.serviceAccount.key","name":"gcp.project.iamService.serviceAccount.key","fields":{"disabled":{"name":"disabled","type":"\u0004","is_mandatory":true,"title":"Whether the key is disabled"},"keyAlgorithm":{"name":"keyAlgorithm","type":"\u0007","is_mandatory":true,"title":"Algorithm (and possibly key size) of the key"},"keyOrigin":{"name":"keyOrigin","type":"\u0007","is_mandatory":true,"title":"Key origin"},"keyType":{"name":"keyType","type":"\u0007","is_mandatory":true,"title":"Key type"},"name":{"name":"name","type":"\u0007","is_mandatory":true,"title":"Service account key name"},"validAfterTime":{"name":"validAfterTime","type":"\t","is_mandatory":true,"title":"Key can be used after this timestamp"},"validBeforeTime":{"name":"validBeforeTime","type":"\t","is_mandatory":true,"title":"Key can be used before this timestamp"}},"title":"GCP service account keys","private":true},"gcp.project.kmsService":{"id":"gcp.project.kmsService","name":"gcp.project.kmsService","fields":{"keyrings":{"name":"keyrings","type":"\u0019\u001bgcp.project.kmsService.keyring","title":"List of keyrings in the current project"},"locations":{"name":"locations","type":"\u0019\u0007","title":"Available locations for the service"},"projectId":{"name":"projectId","type":"\u0007","is_mandatory":true,"title":"Project ID"}},"title":"GCP KMS resources","private":true},"gcp.project.kmsService.keyring":{"id":"gcp.project.kmsService.keyring","name":"gcp.project.kmsService.keyring","fields":{"created":{"name":"created","type":"\t","is_mandatory":true,"title":"Time created"},"cryptokeys":{"name":"cryptokeys","type":"\u0019\u001bgcp.project.kmsService.keyring.cryptokey","title":"List of cryptokeys in the current keyring"},"location":{"name":"location","type":"\u0007","is_mandatory":true,"title":"Keyring location"},"name":{"name":"name","type":"\u0007","is_mandatory":true,"title":"Keyring name"},"projectId":{"name":"projectId","type":"\u0007","is_mandatory":true,"title":"Project ID"},"resourcePath":{"name":"resourcePath","type":"\u0007","is_mandatory":true,"title":"Full resource path"}},"title":"GCP KMS keyring","private":true,"defaults":"name"},"gcp.project.kmsService.keyring.cryptokey":{"id":"gcp.project.kmsService.keyring.cryptokey","name":"gcp.project.kmsService.keyring.cryptokey","fields":{"created":{"name":"created","type":"\t","is_mandatory":true,"title":"Creation timestamp"},"cryptoKeyBackend":{"name":"cryptoKeyBackend","type":"\u0007","is_mandatory":true,"title":"Resource name of the backend environment where the key material for all crypto key versions reside"},"destroyScheduledDuration":{"name":"destroyScheduledDuration","type":"\t","is_mandatory":true,"title":"Period of time that versions of this key spend in DESTROY_SCHEDULED state before being destroyed"},"iamPolicy":{"name":"iamPolicy","type":"\u001bgcp.iamPolicy","title":"Crypto key IAM policy"},"importOnly":{"name":"importOnly","type":"\u0004","is_mandatory":true,"title":"Whether this key may contain imported versions only"},"labels":{"name":"labels","type":"\u001a\u0007\u0007","is_mandatory":true,"title":"User-defined labels"},"name":{"name":"name","type":"\u0007","is_mandatory":true,"title":"Crypto key name"},"nextRotation":{"name":"nextRotation","type":"\t","is_mandatory":true,"title":"Time at which KMS will create a new version of this key and mark it as primary"},"primary":{"name":"primary","type":"\u001bgcp.project.kmsService.keyring.cryptokey.version","is_mandatory":true,"title":"Primary version for encrypt to use for this crypto key"},"purpose":{"name":"purpose","type":"\u0007","is_mandatory":true,"title":"Crypto key purpose"},"resourcePath":{"name":"resourcePath","type":"\u0007","is_mandatory":true,"title":"Full resource path"},"rotationPeriod":{"name":"rotationPeriod","type":"\t","is_mandatory":true,"title":"Rotation period"},"versionTemplate":{"name":"versionTemplate","type":"\n","is_mandatory":true,"title":"Template describing the settings for new crypto key versions"},"versions":{"name":"versions","type":"\u0019\u001bgcp.project.kmsService.keyring.cryptokey.version","title":"List of cryptokey versions"}},"title":"GCP KMS crypto key","private":true,"defaults":"name purpose"},"gcp.project.kmsService.keyring.cryptokey.version":{"id":"gcp.project.kmsService.keyring.cryptokey.version","name":"gcp.project.kmsService.keyring.cryptokey.version","fields":{"algorithm":{"name":"algorithm","type":"\u0007","is_mandatory":true,"title":"Algorithm that this crypto key version supports"},"attestation":{"name":"attestation","type":"\u001bgcp.project.kmsService.keyring.cryptokey.version.attestation","is_mandatory":true,"title":"Statement generated and signed by HSM at key creation time"},"created":{"name":"created","type":"\t","is_mandatory":true,"title":"Time created"},"destroyEventTime":{"name":"destroyEventTime","type":"\t","is_mandatory":true,"title":"Destroy event timestamp"},"destroyed":{"name":"destroyed","type":"\t","is_mandatory":true,"title":"Time destroyed"},"externalProtectionLevelOptions":{"name":"externalProtectionLevelOptions","type":"\u001bgcp.project.kmsService.keyring.cryptokey.version.externalProtectionLevelOptions","is_mandatory":true,"title":"Additional fields for configuring external protection level"},"generated":{"name":"generated","type":"\t","is_mandatory":true,"title":"Time generated"},"importFailureReason":{"name":"importFailureReason","type":"\u0007","is_mandatory":true,"title":"The root cause of an import failure"},"importJob":{"name":"importJob","type":"\u0007","is_mandatory":true,"title":"Name of the import job used in the most recent import of this crypto key version"},"importTime":{"name":"importTime","type":"\t","is_mandatory":true,"title":"Time at which this crypto key version's key material was imported"},"name":{"name":"name","type":"\u0007","is_mandatory":true,"title":"Crypto key version name"},"protectionLevel":{"name":"protectionLevel","type":"\u0007","is_mandatory":true,"title":"The protection level describing how crypto operations perform with this crypto key version"},"reimportEligible":{"name":"reimportEligible","type":"\u0004","is_mandatory":true,"title":"Whether the crypto key version is eligible for reimport"},"resourcePath":{"name":"resourcePath","type":"\u0007","is_mandatory":true,"title":"Full resource path"},"state":{"name":"state","type":"\u0007","is_mandatory":true,"title":"Crypto key version's current state"}},"title":"GCP KMS crypto key version","private":true,"defaults":"name state"},"gcp.project.kmsService.keyring.cryptokey.version.attestation":{"id":"gcp.project.kmsService.keyring.cryptokey.version.attestation","name":"gcp.project.kmsService.keyring.cryptokey.version.attestation","fields":{"certificateChains":{"name":"certificateChains","type":"\u001bgcp.project.kmsService.keyring.cryptokey.version.attestation.certificatechains","is_mandatory":true,"title":"Certificate chains needed to validate the attestation"},"cryptoKeyVersionName":{"name":"cryptoKeyVersionName","type":"\u0007","is_mandatory":true,"title":"Crypto key version name"},"format":{"name":"format","type":"\u0007","is_mandatory":true,"title":"Format of the attestation data"}},"title":"GCP KMS crypto key version attestation","private":true},"gcp.project.kmsService.keyring.cryptokey.version.attestation.certificatechains":{"id":"gcp.project.kmsService.keyring.cryptokey.version.attestation.certificatechains","name":"gcp.project.kmsService.keyring.cryptokey.version.attestation.certificatechains","fields":{"caviumCerts":{"name":"caviumCerts","type":"\u0019\u0007","is_mandatory":true,"title":"Cavium certificate chain corresponding to the attestation"},"cryptoKeyVersionName":{"name":"cryptoKeyVersionName","type":"\u0007","is_mandatory":true,"title":"Crypto key version name"},"googleCardCerts":{"name":"googleCardCerts","type":"\u0019\u0007","is_mandatory":true,"title":"Google card certificate chain corresponding to the attestation"},"googlePartitionCerts":{"name":"googlePartitionCerts","type":"\u0019\u0007","is_mandatory":true,"title":"Google partition certificate chain corresponding to the attestation"}},"title":"GCP KMS crypto key version attestation certificate chains","private":true},"gcp.project.kmsService.keyring.cryptokey.version.externalProtectionLevelOptions":{"id":"gcp.project.kmsService.keyring.cryptokey.version.externalProtectionLevelOptions","name":"gcp.project.kmsService.keyring.cryptokey.version.externalProtectionLevelOptions","fields":{"cryptoKeyVersionName":{"name":"cryptoKeyVersionName","type":"\u0007","is_mandatory":true,"title":"Crypto key version name"},"ekmConnectionKeyPath":{"name":"ekmConnectionKeyPath","type":"\u0007","is_mandatory":true,"title":"Path to the external key material on the EKM when using EKM connection"},"externalKeyUri":{"name":"externalKeyUri","type":"\u0007","is_mandatory":true,"title":"URI for an external resource that the crypto key version represents"}},"title":"GCP KMS crypto key version external protection level options","private":true},"gcp.project.loggingservice":{"id":"gcp.project.loggingservice","name":"gcp.project.loggingservice","fields":{"buckets":{"name":"buckets","type":"\u0019\u001bgcp.project.loggingservice.bucket","title":"List of logging buckets"},"metrics":{"name":"metrics","type":"\u0019\u001bgcp.project.loggingservice.metric","title":"List of metrics"},"projectId":{"name":"projectId","type":"\u0007","is_mandatory":true,"title":"Project ID"},"sinks":{"name":"sinks","type":"\u0019\u001bgcp.project.loggingservice.sink","title":"List of log sinks"}},"title":"GCP Logging resources","private":true},"gcp.project.loggingservice.bucket":{"id":"gcp.project.loggingservice.bucket","name":"gcp.project.loggingservice.bucket","fields":{"cmekSettings":{"name":"cmekSettings","type":"\n","is_mandatory":true,"title":"CMEK settings of the log bucket"},"created":{"name":"created","type":"\t","is_mandatory":true,"title":"Creation timestamp"},"description":{"name":"description","type":"\u0007","is_mandatory":true,"title":"Description of the bucket"},"indexConfigs":{"name":"indexConfigs","type":"\u0019\u001bgcp.project.loggingservice.bucket.indexConfig","is_mandatory":true,"title":"List of indexed fields and related configuration data"},"lifecycleState":{"name":"lifecycleState","type":"\u0007","is_mandatory":true,"title":"Bucket lifecycle state"},"locked":{"name":"locked","type":"\u0004","is_mandatory":true,"title":"Whether the bucket is locked"},"name":{"name":"name","type":"\u0007","is_mandatory":true,"title":"Bucket name"},"projectId":{"name":"projectId","type":"\u0007","is_mandatory":true,"title":"Project ID"},"restrictedFields":{"name":"restrictedFields","type":"\u0019\u0007","is_mandatory":true,"title":"Log entry field paths that are denied access in this bucket"},"retentionDays":{"name":"retentionDays","type":"\u0005","is_mandatory":true,"title":"Logs will be retained by default for this amount of time, after which they will automatically be deleted"},"updated":{"name":"updated","type":"\t","is_mandatory":true,"title":"Last update timestamp of the bucket"}},"title":"GCP Logging bucket","private":true,"defaults":"name"},"gcp.project.loggingservice.bucket.indexConfig":{"id":"gcp.project.loggingservice.bucket.indexConfig","name":"gcp.project.loggingservice.bucket.indexConfig","fields":{"created":{"name":"created","type":"\t","is_mandatory":true,"title":"Creation timestamp"},"fieldPath":{"name":"fieldPath","type":"\u0007","is_mandatory":true,"title":"Log entry field path to index"},"id":{"name":"id","type":"\u0007","is_mandatory":true,"title":"Internal ID"},"type":{"name":"type","type":"\u0007","is_mandatory":true,"title":"Type of data in this index"}},"title":"GCP Logging bucket index config","private":true},"gcp.project.loggingservice.metric":{"id":"gcp.project.loggingservice.metric","name":"gcp.project.loggingservice.metric","fields":{"alertPolicies":{"name":"alertPolicies","type":"\u0019\u001bgcp.project.monitoringService.alertPolicy","title":"Alert policies for this metric"},"description":{"name":"description","type":"\u0007","is_mandatory":true,"title":"Metric description"},"filter":{"name":"filter","type":"\u0007","is_mandatory":true,"title":"Advanced log filter"},"id":{"name":"id","type":"\u0007","is_mandatory":true,"title":"Metric ID"},"projectId":{"name":"projectId","type":"\u0007","is_mandatory":true,"title":"Project ID"}},"title":"GCP Logging metric","private":true,"defaults":"description filter"},"gcp.project.loggingservice.sink":{"id":"gcp.project.loggingservice.sink","name":"gcp.project.loggingservice.sink","fields":{"destination":{"name":"destination","type":"\u0007","is_mandatory":true,"title":"Export destination"},"filter":{"name":"filter","type":"\u0007","is_mandatory":true,"title":"Optional advanced logs filter"},"id":{"name":"id","type":"\u0007","is_mandatory":true,"title":"Sink ID"},"includeChildren":{"name":"includeChildren","type":"\u0004","is_mandatory":true,"title":"Whether to allow the sink to export log entries from the organization or folder, plus (recursively) from any contained folders, billings accounts, or projects"},"projectId":{"name":"projectId","type":"\u0007","is_mandatory":true,"title":"Project ID"},"storageBucket":{"name":"storageBucket","type":"\u001bgcp.project.storageService.bucket","title":"Storage bucket to which the sink exports. Only set for sinks with a destination storage bucket"},"writerIdentity":{"name":"writerIdentity","type":"\u0007","is_mandatory":true,"title":"When exporting logs, logging adopts this identity for authorization"}},"title":"GCP Logging sink","private":true},"gcp.project.monitoringService":{"id":"gcp.project.monitoringService","name":"gcp.project.monitoringService","fields":{"alertPolicies":{"name":"alertPolicies","type":"\u0019\u001bgcp.project.monitoringService.alertPolicy","title":"List of alert policies"},"projectId":{"name":"projectId","type":"\u0007","is_mandatory":true,"title":"Project ID"}},"title":"GCP monitoring resources","private":true},"gcp.project.monitoringService.alertPolicy":{"id":"gcp.project.monitoringService.alertPolicy","name":"gcp.project.monitoringService.alertPolicy","fields":{"alertStrategy":{"name":"alertStrategy","type":"\n","is_mandatory":true,"title":"Configuration for notification channels notifications"},"combiner":{"name":"combiner","type":"\u0007","is_mandatory":true,"title":"How to combine the results of multiple conditions to determine if an incident should be opened"},"conditions":{"name":"conditions","type":"\u0019\n","is_mandatory":true,"title":"List of conditions for the policy"},"created":{"name":"created","type":"\t","is_mandatory":true,"title":"Creation timestamp"},"createdBy":{"name":"createdBy","type":"\u0007","is_mandatory":true,"title":"Email address of the user who created the alert policy"},"displayName":{"name":"displayName","type":"\u0007","is_mandatory":true,"title":"Display name"},"documentation":{"name":"documentation","type":"\n","is_mandatory":true,"title":"Documentation included with notifications and incidents related to this policy"},"enabled":{"name":"enabled","type":"\u0004","is_mandatory":true,"title":"Whether the policy is enabled"},"labels":{"name":"labels","type":"\u001a\u0007\u0007","is_mandatory":true,"title":"User-defined labels"},"name":{"name":"name","type":"\u0007","is_mandatory":true,"title":"Alert policy name"},"notificationChannelUrls":{"name":"notificationChannelUrls","type":"\u0019\u0007","is_mandatory":true,"title":"Notification channel URLs to which notifications should be sent when incidents are opened or closed"},"projectId":{"name":"projectId","type":"\u0007","is_mandatory":true,"title":"Project ID"},"updated":{"name":"updated","type":"\t","is_mandatory":true,"title":"Update timestamp"},"updatedBy":{"name":"updatedBy","type":"\u0007","is_mandatory":true,"title":"Email address of the user who last updated the alert policy"},"validity":{"name":"validity","type":"\n","is_mandatory":true,"title":"Description of how the alert policy is invalid"}},"title":"GCP monitoring alert policy","private":true},"gcp.project.pubsubService":{"id":"gcp.project.pubsubService","name":"gcp.project.pubsubService","fields":{"projectId":{"name":"projectId","type":"\u0007","is_mandatory":true,"title":"Project ID"},"snapshots":{"name":"snapshots","type":"\u0019\u001bgcp.project.pubsubService.snapshot","title":"List of snapshots in the current project"},"subscriptions":{"name":"subscriptions","type":"\u0019\u001bgcp.project.pubsubService.subscription","title":"List of subscriptions in the current project"},"topics":{"name":"topics","type":"\u0019\u001bgcp.project.pubsubService.topic","title":"List of topics in the current project"}},"title":"GCP Pub/Sub resources","private":true},"gcp.project.pubsubService.snapshot":{"id":"gcp.project.pubsubService.snapshot","name":"gcp.project.pubsubService.snapshot","fields":{"expiration":{"name":"expiration","type":"\t","is_mandatory":true,"title":"When the snapshot expires"},"name":{"name":"name","type":"\u0007","is_mandatory":true,"title":"Subscription name"},"projectId":{"name":"projectId","type":"\u0007","is_mandatory":true,"title":"Project ID"},"topic":{"name":"topic","type":"\u001bgcp.project.pubsubService.topic","is_mandatory":true,"title":"The topic for which the snapshot is"}},"title":"GCP Pub/Sub snapshot","private":true,"defaults":"name"},"gcp.project.pubsubService.subscription":{"id":"gcp.project.pubsubService.subscription","name":"gcp.project.pubsubService.subscription","fields":{"config":{"name":"config","type":"\u001bgcp.project.pubsubService.subscription.config","title":"Subscription configuration"},"name":{"name":"name","type":"\u0007","is_mandatory":true,"title":"Subscription name"},"projectId":{"name":"projectId","type":"\u0007","is_mandatory":true,"title":"Project ID"}},"title":"GCP Pub/Sub subscription","private":true,"defaults":"name"},"gcp.project.pubsubService.subscription.config":{"id":"gcp.project.pubsubService.subscription.config","name":"gcp.project.pubsubService.subscription.config","fields":{"ackDeadline":{"name":"ackDeadline","type":"\t","is_mandatory":true,"title":"Default maximum time a subscriber can take to acknowledge a message after receiving it"},"expirationPolicy":{"name":"expirationPolicy","type":"\t","is_mandatory":true,"title":"Specifies the conditions for a subscription's expiration"},"labels":{"name":"labels","type":"\u001a\u0007\u0007","is_mandatory":true,"title":"The labels associated with this subscription"},"projectId":{"name":"projectId","type":"\u0007","is_mandatory":true,"title":"Project ID"},"pushConfig":{"name":"pushConfig","type":"\u001bgcp.project.pubsubService.subscription.config.pushconfig","is_mandatory":true,"title":"Configuration for subscriptions that operate in push mode"},"retainAckedMessages":{"name":"retainAckedMessages","type":"\u0004","is_mandatory":true,"title":"Whether to retain acknowledged messages"},"retentionDuration":{"name":"retentionDuration","type":"\t","is_mandatory":true,"title":"How long to retain messages in the backlog after they're published"},"subscriptionName":{"name":"subscriptionName","type":"\u0007","is_mandatory":true,"title":"Subscription name"},"topic":{"name":"topic","type":"\u001bgcp.project.pubsubService.topic","is_mandatory":true,"title":"Topic to which the subscription points"}},"title":"GCP Pub/Sub subscription configuration","private":true,"defaults":"topic.name ackDeadline expirationPolicy"},"gcp.project.pubsubService.subscription.config.pushconfig":{"id":"gcp.project.pubsubService.subscription.config.pushconfig","name":"gcp.project.pubsubService.subscription.config.pushconfig","fields":{"attributes":{"name":"attributes","type":"\u001a\u0007\u0007","is_mandatory":true,"title":"Endpoint configuration attributes"},"configId":{"name":"configId","type":"\u0007","is_mandatory":true,"title":"Parent configuration ID"},"endpoint":{"name":"endpoint","type":"\u0007","is_mandatory":true,"title":"URL of the endpoint to which to push messages"}},"title":"GCP Pub/Sub Configuration for subscriptions that operate in push mode","private":true,"defaults":"attributes"},"gcp.project.pubsubService.topic":{"id":"gcp.project.pubsubService.topic","name":"gcp.project.pubsubService.topic","fields":{"config":{"name":"config","type":"\u001bgcp.project.pubsubService.topic.config","title":"Topic configuration"},"name":{"name":"name","type":"\u0007","is_mandatory":true,"title":"Topic name"},"projectId":{"name":"projectId","type":"\u0007","is_mandatory":true,"title":"Project ID"}},"title":"GCP Pub/Sub topic","private":true,"defaults":"name"},"gcp.project.pubsubService.topic.config":{"id":"gcp.project.pubsubService.topic.config","name":"gcp.project.pubsubService.topic.config","fields":{"kmsKeyName":{"name":"kmsKeyName","type":"\u0007","is_mandatory":true,"title":"Cloud KMS key used to protect access to messages published to this topic"},"labels":{"name":"labels","type":"\u001a\u0007\u0007","is_mandatory":true,"title":"Labels associated with this topic"},"messageStoragePolicy":{"name":"messageStoragePolicy","type":"\u001bgcp.project.pubsubService.topic.config.messagestoragepolicy","is_mandatory":true,"title":"Message storage policy"},"projectId":{"name":"projectId","type":"\u0007","is_mandatory":true,"title":"Project ID"},"topicName":{"name":"topicName","type":"\u0007","is_mandatory":true,"title":"Topic name"}},"title":"GCP Pub/Sub topic configuration","private":true,"defaults":"kmsKeyName messageStoragePolicy"},"gcp.project.pubsubService.topic.config.messagestoragepolicy":{"id":"gcp.project.pubsubService.topic.config.messagestoragepolicy","name":"gcp.project.pubsubService.topic.config.messagestoragepolicy","fields":{"allowedPersistenceRegions":{"name":"allowedPersistenceRegions","type":"\u0019\u0007","is_mandatory":true,"title":"List of GCP regions where messages published to the topic can persist in storage"},"configId":{"name":"configId","type":"\u0007","is_mandatory":true,"title":"Parent configuration ID"}},"title":"GCP Pub/Sub topic message storage policy","private":true,"defaults":"allowedPersistenceRegions"},"gcp.project.sqlService":{"id":"gcp.project.sqlService","name":"gcp.project.sqlService","fields":{"instances":{"name":"instances","type":"\u0019\u001bgcp.project.sqlService.instance","title":"List of Cloud SQL instances in the current project"},"projectId":{"name":"projectId","type":"\u0007","is_mandatory":true,"title":"Project ID"}},"title":"GCP Cloud SQL Resources","private":true},"gcp.project.sqlService.instance":{"id":"gcp.project.sqlService.instance","name":"gcp.project.sqlService.instance","fields":{"availableMaintenanceVersions":{"name":"availableMaintenanceVersions","type":"\u0019\u0007","is_mandatory":true,"title":"All maintenance versions applicable on the instance"},"backendType":{"name":"backendType","type":"\u0007","is_mandatory":true,"title":"Backend type"},"connectionName":{"name":"connectionName","type":"\u0007","is_mandatory":true,"title":"Connection name of the instance used in connection strings"},"created":{"name":"created","type":"\t","is_mandatory":true,"title":"Creation timestamp"},"currentDiskSize":{"name":"currentDiskSize","type":"\u0005","is_mandatory":true,"title":"Current disk usage of the instance in bytes. This is deprecated; use monitoring should be used instead."},"databaseInstalledVersion":{"name":"databaseInstalledVersion","type":"\u0007","is_mandatory":true,"title":"Current database version running on the instance"},"databaseVersion":{"name":"databaseVersion","type":"\u0007","is_mandatory":true,"title":"Database engine type and version"},"databases":{"name":"databases","type":"\u0019\u001bgcp.project.sqlService.instance.database","title":"List of the databases in the current SQL instance"},"diskEncryptionConfiguration":{"name":"diskEncryptionConfiguration","type":"\n","is_mandatory":true,"title":"Disk encryption configuration"},"diskEncryptionStatus":{"name":"diskEncryptionStatus","type":"\n","is_mandatory":true,"title":"Disk encryption status"},"failoverReplica":{"name":"failoverReplica","type":"\n","is_mandatory":true,"title":"Name and status of the failover replica"},"gceZone":{"name":"gceZone","type":"\u0007","is_mandatory":true,"title":"Compute Engine zone that the instance is currently serviced from"},"instanceType":{"name":"instanceType","type":"\u0007","is_mandatory":true,"title":"Instance type"},"ipAddresses":{"name":"ipAddresses","type":"\u0019\u001bgcp.project.sqlService.instance.ipMapping","is_mandatory":true,"title":"Assigned IP addresses"},"maintenanceVersion":{"name":"maintenanceVersion","type":"\u0007","is_mandatory":true,"title":"Current software version on the instance"},"masterInstanceName":{"name":"masterInstanceName","type":"\u0007","is_mandatory":true,"title":"Name of the instance that will act as primary in the replica"},"maxDiskSize":{"name":"maxDiskSize","type":"\u0005","is_mandatory":true,"title":"Maximum disk size in bytes"},"name":{"name":"name","type":"\u0007","is_mandatory":true,"title":"Instance name"},"project":{"name":"project","type":"\u0007","is_mandatory":true,"title":"This is deprecated; use projectId instead."},"projectId":{"name":"projectId","type":"\u0007","is_mandatory":true,"title":"Project ID"},"region":{"name":"region","type":"\u0007","is_mandatory":true,"title":"Region"},"replicaNames":{"name":"replicaNames","type":"\u0019\u0007","is_mandatory":true,"title":"Replicas"},"serviceAccountEmailAddress":{"name":"serviceAccountEmailAddress","type":"\u0007","is_mandatory":true,"title":"Service account email address"},"settings":{"name":"settings","type":"\u001bgcp.project.sqlService.instance.settings","is_mandatory":true,"title":"Settings"},"state":{"name":"state","type":"\u0007","is_mandatory":true,"title":"Instance state"}},"title":"GCP Cloud SQL Instance","private":true,"defaults":"name"},"gcp.project.sqlService.instance.database":{"id":"gcp.project.sqlService.instance.database","name":"gcp.project.sqlService.instance.database","fields":{"charset":{"name":"charset","type":"\u0007","is_mandatory":true,"title":"Charset value"},"collation":{"name":"collation","type":"\u0007","is_mandatory":true,"title":"Collation"},"instance":{"name":"instance","type":"\u0007","is_mandatory":true,"title":"Name of the Cloud SQL instance"},"name":{"name":"name","type":"\u0007","is_mandatory":true,"title":"Name of the database"},"projectId":{"name":"projectId","type":"\u0007","is_mandatory":true,"title":"Project ID"},"sqlserverDatabaseDetails":{"name":"sqlserverDatabaseDetails","type":"\n","is_mandatory":true,"title":"SQL Server database details"}},"title":"GCP Cloud SQL Instance database","private":true,"defaults":"name"},"gcp.project.sqlService.instance.ipMapping":{"id":"gcp.project.sqlService.instance.ipMapping","name":"gcp.project.sqlService.instance.ipMapping","fields":{"id":{"name":"id","type":"\u0007","is_mandatory":true,"title":"Internal ID"},"ipAddress":{"name":"ipAddress","type":"\u0007","is_mandatory":true,"title":"Assigned IP address"},"timeToRetire":{"name":"timeToRetire","type":"\t","is_mandatory":true,"title":"Due time for this IP to retire"},"type":{"name":"type","type":"\u0007","is_mandatory":true,"title":"Type of this IP address"}},"title":"GCP Cloud SQL Instance IP Mapping","private":true,"defaults":"ipAddress"},"gcp.project.sqlService.instance.settings":{"id":"gcp.project.sqlService.instance.settings","name":"gcp.project.sqlService.instance.settings","fields":{"activationPolicy":{"name":"activationPolicy","type":"\u0007","is_mandatory":true,"title":"When the instance is activated"},"activeDirectoryConfig":{"name":"activeDirectoryConfig","type":"\n","is_mandatory":true,"title":"Active Directory configuration (relevant only for Cloud SQL for SQL Server)"},"availabilityType":{"name":"availabilityType","type":"\u0007","is_mandatory":true,"title":"Availability type"},"backupConfiguration":{"name":"backupConfiguration","type":"\u001bgcp.project.sqlService.instance.settings.backupconfiguration","is_mandatory":true,"title":"Daily backup configuration for the instance"},"collation":{"name":"collation","type":"\u0007","is_mandatory":true,"title":"Name of the server collation"},"connectorEnforcement":{"name":"connectorEnforcement","type":"\u0007","is_mandatory":true,"title":"Whether connections must use Cloud SQL connectors"},"crashSafeReplicationEnabled":{"name":"crashSafeReplicationEnabled","type":"\u0004","is_mandatory":true,"title":"Whether database flags for crash-safe replication are enabled"},"dataDiskSizeGb":{"name":"dataDiskSizeGb","type":"\u0005","is_mandatory":true,"title":"Size of data disk, in GB"},"dataDiskType":{"name":"dataDiskType","type":"\u0007","is_mandatory":true,"title":"Type of the data disk"},"databaseFlags":{"name":"databaseFlags","type":"\u001a\u0007\u0007","is_mandatory":true,"title":"Database flags passed to the instance at startup"},"databaseReplicationEnabled":{"name":"databaseReplicationEnabled","type":"\u0004","is_mandatory":true,"title":"Whether replication is enabled"},"deletionProtectionEnabled":{"name":"deletionProtectionEnabled","type":"\u0004","is_mandatory":true,"title":"Whether to protect against accidental instance deletion"},"denyMaintenancePeriods":{"name":"denyMaintenancePeriods","type":"\u0019\u001bgcp.project.sqlService.instance.settings.denyMaintenancePeriod","is_mandatory":true,"title":"Deny maintenance periods"},"insightsConfig":{"name":"insightsConfig","type":"\n","is_mandatory":true,"title":"Insights configuration"},"instanceName":{"name":"instanceName","type":"\u0007","is_mandatory":true,"title":"Instance name"},"ipConfiguration":{"name":"ipConfiguration","type":"\u001bgcp.project.sqlService.instance.settings.ipConfiguration","is_mandatory":true,"title":"IP Management settings"},"locationPreference":{"name":"locationPreference","type":"\n","is_mandatory":true,"title":"Location preference settings"},"maintenanceWindow":{"name":"maintenanceWindow","type":"\u001bgcp.project.sqlService.instance.settings.maintenanceWindow","is_mandatory":true,"title":"Maintenance window"},"passwordValidationPolicy":{"name":"passwordValidationPolicy","type":"\u001bgcp.project.sqlService.instance.settings.passwordValidationPolicy","is_mandatory":true,"title":"Local user password validation policy"},"pricingPlan":{"name":"pricingPlan","type":"\u0007","is_mandatory":true,"title":"Pricing plan"},"projectId":{"name":"projectId","type":"\u0007","is_mandatory":true,"title":"Project ID"},"replicationType":{"name":"replicationType","type":"\u0007","is_mandatory":true,"title":"Replication type"},"settingsVersion":{"name":"settingsVersion","type":"\u0005","is_mandatory":true,"title":"Instance settings version"},"sqlServerAuditConfig":{"name":"sqlServerAuditConfig","type":"\n","is_mandatory":true,"title":"SQL server specific audit configuration"},"storageAutoResize":{"name":"storageAutoResize","type":"\u0004","is_mandatory":true,"title":"Configuration to increase storage size automatically"},"storageAutoResizeLimit":{"name":"storageAutoResizeLimit","type":"\u0005","is_mandatory":true,"title":"Maximum size to which storage capacity can be automatically increased"},"tier":{"name":"tier","type":"\u0007","is_mandatory":true,"title":"Service tier for this instance"},"timeZone":{"name":"timeZone","type":"\u0007","is_mandatory":true,"title":"Server timezone"},"userLabels":{"name":"userLabels","type":"\u001a\u0007\u0007","is_mandatory":true,"title":"User-provided labels"}},"title":"GCP Cloud SQL Instance Settings","private":true},"gcp.project.sqlService.instance.settings.backupconfiguration":{"id":"gcp.project.sqlService.instance.settings.backupconfiguration","name":"gcp.project.sqlService.instance.settings.backupconfiguration","fields":{"backupRetentionSettings":{"name":"backupRetentionSettings","type":"\n","is_mandatory":true,"title":"Backup retention settings"},"binaryLogEnabled":{"name":"binaryLogEnabled","type":"\u0004","is_mandatory":true,"title":"Whether binary log is enabled"},"enabled":{"name":"enabled","type":"\u0004","is_mandatory":true,"title":"Whether this configuration is enabled"},"id":{"name":"id","type":"\u0007","is_mandatory":true,"title":"Internal ID"},"location":{"name":"location","type":"\u0007","is_mandatory":true,"title":"Location of the backup"},"pointInTimeRecoveryEnabled":{"name":"pointInTimeRecoveryEnabled","type":"\u0004","is_mandatory":true,"title":"Whether point-in-time recovery is enabled"},"startTime":{"name":"startTime","type":"\u0007","is_mandatory":true,"title":"Start time for the daily backup configuration (in UTC timezone, in the 24 hour format)"},"transactionLogRetentionDays":{"name":"transactionLogRetentionDays","type":"\u0005","is_mandatory":true,"title":"Number of days of transaction logs retained for point-in-time restore"}},"title":"GCP Cloud SQL Instance Settings Backup Configuration","private":true},"gcp.project.sqlService.instance.settings.denyMaintenancePeriod":{"id":"gcp.project.sqlService.instance.settings.denyMaintenancePeriod","name":"gcp.project.sqlService.instance.settings.denyMaintenancePeriod","fields":{"endDate":{"name":"endDate","type":"\u0007","is_mandatory":true,"title":"Deny maintenance period end date"},"id":{"name":"id","type":"\u0007","is_mandatory":true,"title":"Internal ID"},"startDate":{"name":"startDate","type":"\u0007","is_mandatory":true,"title":"Deny maintenance period start date"},"time":{"name":"time","type":"\u0007","is_mandatory":true,"title":"Time in UTC when the deny maintenance period starts and ends"}},"title":"GCP Cloud SQL Instance Settings Deny Maintenance Period","private":true,"defaults":"startDate endDate"},"gcp.project.sqlService.instance.settings.ipConfiguration":{"id":"gcp.project.sqlService.instance.settings.ipConfiguration","name":"gcp.project.sqlService.instance.settings.ipConfiguration","fields":{"allocatedIpRange":{"name":"allocatedIpRange","type":"\u0007","is_mandatory":true,"title":"Name of the allocated IP range for the private IP Cloud SQL instance"},"authorizedNetworks":{"name":"authorizedNetworks","type":"\u0019\n","is_mandatory":true,"title":"List of external networks that are allowed to connect to the instance using the IP"},"id":{"name":"id","type":"\u0007","is_mandatory":true,"title":"Internal ID"},"ipv4Enabled":{"name":"ipv4Enabled","type":"\u0004","is_mandatory":true,"title":"Whether the instance is assigned a public IP address"},"privateNetwork":{"name":"privateNetwork","type":"\u0007","is_mandatory":true,"title":"Resource link for the VPC network from which the private IPs can access the Cloud SQL instance"},"requireSsl":{"name":"requireSsl","type":"\u0004","is_mandatory":true,"title":"Whether SSL connections over IP are enforced"}},"title":"GCP Cloud SQL Instance Settings IP Configuration","private":true},"gcp.project.sqlService.instance.settings.maintenanceWindow":{"id":"gcp.project.sqlService.instance.settings.maintenanceWindow","name":"gcp.project.sqlService.instance.settings.maintenanceWindow","fields":{"day":{"name":"day","type":"\u0005","is_mandatory":true,"title":"Day of week (1-7), starting on Monday"},"hour":{"name":"hour","type":"\u0005","is_mandatory":true,"title":"Hour of day - 0 to 23"},"id":{"name":"id","type":"\u0007","is_mandatory":true,"title":"Internal ID"},"updateTrack":{"name":"updateTrack","type":"\u0007","is_mandatory":true,"title":"Maintenance timing setting: canary (Earlier) or stable (Later)"}},"title":"GCP Cloud SQL Instance Settings Maintenance Window","private":true,"defaults":"day hour"},"gcp.project.sqlService.instance.settings.passwordValidationPolicy":{"id":"gcp.project.sqlService.instance.settings.passwordValidationPolicy","name":"gcp.project.sqlService.instance.settings.passwordValidationPolicy","fields":{"complexity":{"name":"complexity","type":"\u0007","is_mandatory":true,"title":"Password complexity"},"disallowUsernameSubstring":{"name":"disallowUsernameSubstring","type":"\u0004","is_mandatory":true,"title":"Whether username is forbidden as a part of the password"},"enabledPasswordPolicy":{"name":"enabledPasswordPolicy","type":"\u0004","is_mandatory":true,"title":"Whether the password policy is enabled"},"id":{"name":"id","type":"\u0007","is_mandatory":true,"title":"Internal ID"},"minLength":{"name":"minLength","type":"\u0005","is_mandatory":true,"title":"Minimum number of characters required in passwords"},"passwordChangeInterval":{"name":"passwordChangeInterval","type":"\u0007","is_mandatory":true,"title":"Minimum interval after which the password can be changed"},"reuseInterval":{"name":"reuseInterval","type":"\u0005","is_mandatory":true,"title":"Number of previous passwords that cannot be reused"}},"title":"GCP Cloud SQL Instance Settings Password Validation Policy","private":true,"defaults":"enabledPasswordPolicy"},"gcp.project.storageService":{"id":"gcp.project.storageService","name":"gcp.project.storageService","fields":{"buckets":{"name":"buckets","type":"\u0019\u001bgcp.project.storageService.bucket","title":"List all buckets"},"projectId":{"name":"projectId","type":"\u0007","is_mandatory":true,"title":"Project ID"}},"title":"GCP Cloud Storage","private":true},"gcp.project.storageService.bucket":{"id":"gcp.project.storageService.bucket","name":"gcp.project.storageService.bucket","fields":{"created":{"name":"created","type":"\t","is_mandatory":true,"title":"Creation timestamp"},"iamConfiguration":{"name":"iamConfiguration","type":"\n","is_mandatory":true,"title":"IAM configuration"},"iamPolicy":{"name":"iamPolicy","type":"\u001bgcp.iamPolicy","title":"IAM policy"},"id":{"name":"id","type":"\u0007","is_mandatory":true,"title":"Bucket ID"},"labels":{"name":"labels","type":"\u001a\u0007\u0007","is_mandatory":true,"title":"User-defined labels"},"location":{"name":"location","type":"\u0007","is_mandatory":true,"title":"Bucket location"},"locationType":{"name":"locationType","type":"\u0007","is_mandatory":true,"title":"Bucket location type"},"name":{"name":"name","type":"\u0007","is_mandatory":true,"title":"Bucket name"},"projectId":{"name":"projectId","type":"\u0007","is_mandatory":true,"title":"Project ID"},"projectNumber":{"name":"projectNumber","type":"\u0007","is_mandatory":true,"title":"Project number"},"retentionPolicy":{"name":"retentionPolicy","type":"\n","is_mandatory":true,"title":"Retention policy"},"storageClass":{"name":"storageClass","type":"\u0007","is_mandatory":true,"title":"Default storage class"},"updated":{"name":"updated","type":"\t","is_mandatory":true,"title":"Update timestamp"}},"title":"GCP Cloud Storage Bucket","private":true,"defaults":"id"},"gcp.recommendation":{"id":"gcp.recommendation","name":"gcp.recommendation","fields":{"additionalImpact":{"name":"additionalImpact","type":"\u0019\n","is_mandatory":true,"title":"Optional set of additional impact that this recommendation may have"},"category":{"name":"category","type":"\u0007","is_mandatory":true,"title":"Category of Primary Impact"},"content":{"name":"content","type":"\n","is_mandatory":true,"title":"Describing recommended changes to resources"},"id":{"name":"id","type":"\u0007","is_mandatory":true,"title":"ID of recommendation"},"lastRefreshTime":{"name":"lastRefreshTime","type":"\t","is_mandatory":true,"title":"Last time this recommendation was refreshed"},"name":{"name":"name","type":"\u0007","is_mandatory":true,"title":"Description of the recommendation"},"primaryImpact":{"name":"primaryImpact","type":"\n","is_mandatory":true,"title":"The primary impact that this recommendation can have"},"priority":{"name":"priority","type":"\u0007","is_mandatory":true,"title":"Recommendation's priority"},"projectId":{"name":"projectId","type":"\u0007","is_mandatory":true,"title":"Project ID"},"recommender":{"name":"recommender","type":"\u0007","is_mandatory":true,"title":"Recommender"},"state":{"name":"state","type":"\n","is_mandatory":true,"title":"State and Metadata about Recommendation"},"zoneName":{"name":"zoneName","type":"\u0007","is_mandatory":true,"title":"Zone Name"}},"title":"GCP recommendation along with a suggested action"},"gcp.resourcemanager.binding":{"id":"gcp.iamPolicy.binding","name":"gcp.iamPolicy.binding","fields":{"id":{"name":"id","type":"\u0007","is_mandatory":true,"title":"Internal ID"},"members":{"name":"members","type":"\u0019\u0007","is_mandatory":true,"title":"Principals requesting access for a Google Cloud resource"},"role":{"name":"role","type":"\u0007","is_mandatory":true,"title":"Role assigned to the list of members or principals"}},"title":"GCP Resource Manager Binding","private":true},"gcp.service":{"id":"gcp.service","name":"gcp.service","fields":{"enabled":{"name":"enabled","type":"\u0004","title":"Checks if the service is enabled"},"name":{"name":"name","type":"\u0007","is_mandatory":true,"title":"Service name"},"parentName":{"name":"parentName","type":"\u0007","is_mandatory":true,"title":"Service parent name"},"projectId":{"name":"projectId","type":"\u0007","is_mandatory":true,"title":"Project ID"},"state":{"name":"state","type":"\u0007","is_mandatory":true,"title":"Service state"},"title":{"name":"title","type":"\u0007","is_mandatory":true,"title":"Service title"}},"title":"GCP Service","defaults":"name"},"gcp.sql":{"id":"gcp.project.sqlService","name":"gcp.project.sqlService","fields":{"instances":{"name":"instances","type":"\u0019\u001bgcp.project.sqlService.instance","title":"List of Cloud SQL instances in the current project"},"projectId":{"name":"projectId","type":"\u0007","is_mandatory":true,"title":"Project ID"}},"title":"GCP Cloud SQL Resources","private":true},"gcp.storage":{"id":"gcp.project.storageService","name":"gcp.project.storageService","fields":{"buckets":{"name":"buckets","type":"\u0019\u001bgcp.project.storageService.bucket","title":"List all buckets"},"projectId":{"name":"projectId","type":"\u0007","is_mandatory":true,"title":"Project ID"}},"title":"GCP Cloud Storage","private":true}}} \ No newline at end of file diff --git a/resources/packs/gcp/kms.go b/resources/packs/gcp/kms.go index 6d57e8a949..2fa53604d9 100644 --- a/resources/packs/gcp/kms.go +++ b/resources/packs/gcp/kms.go @@ -2,8 +2,8 @@ package gcp import ( "context" + "encoding/json" "fmt" - "strconv" "sync" "time" @@ -13,6 +13,7 @@ import ( "go.mondoo.com/cnquery/llx" "go.mondoo.com/cnquery/resources" "go.mondoo.com/cnquery/resources/packs/core" + "google.golang.org/api/cloudresourcemanager/v1" "google.golang.org/api/iterator" "google.golang.org/api/option" "google.golang.org/genproto/googleapis/cloud/location" @@ -339,7 +340,7 @@ func (g *mqlGcpProjectKmsServiceKeyringCryptokey) GetVersions() ([]interface{}, return versions, nil } -func (g *mqlGcpProjectKmsServiceKeyringCryptokey) GetIamPolicy() ([]interface{}, error) { +func (g *mqlGcpProjectKmsServiceKeyringCryptokey) GetIamPolicy() (interface{}, error) { cryptokey, err := g.ResourcePath() if err != nil { return nil, err @@ -367,19 +368,34 @@ func (g *mqlGcpProjectKmsServiceKeyringCryptokey) GetIamPolicy() ([]interface{}, if err != nil { return nil, err } - res := make([]interface{}, 0, len(policy.Bindings)) - for i, b := range policy.Bindings { - mqlBinding, err := g.MotorRuntime.CreateResource("gcp.resourcemanager.binding", - "id", cryptokey+"-"+strconv.Itoa(i), - "role", b.Role, - "members", core.StrSliceToInterface(b.Members), - ) - if err != nil { - return nil, err - } - res = append(res, mqlBinding) + + data, err := json.Marshal(policy) + if err != nil { + return nil, err + } + + convPolicy := &cloudresourcemanager.Policy{} + if err := json.Unmarshal(data, convPolicy); err != nil { + return nil, err } - return res, nil + + policyId := fmt.Sprintf("gcp.project.kmsService.keyring.cryptokey/%s/gcp.iamPolicy", cryptokey) + auditConfigs, err := auditConfigsToMql(g.MotorRuntime, convPolicy.AuditConfigs, fmt.Sprintf("%s/auditConfigs", policyId)) + if err != nil { + return nil, err + } + + bindings, err := bindingsToMql(g.MotorRuntime, convPolicy.Bindings, fmt.Sprintf("%s/bindings", policyId)) + if err != nil { + return nil, err + } + + return g.MotorRuntime.CreateResource("gcp.iamPolicy", + "id", policyId, + "auditConfigs", auditConfigs, + "bindings", bindings, + "version", int64(policy.Version), + ) } func cryptoKeyVersionToMql(runtime *resources.Runtime, v *kmspb.CryptoKeyVersion) (resources.ResourceType, error) { diff --git a/resources/packs/gcp/organization.go b/resources/packs/gcp/organization.go index 4df0105d56..e30d00f419 100644 --- a/resources/packs/gcp/organization.go +++ b/resources/packs/gcp/organization.go @@ -2,11 +2,10 @@ package gcp import ( "context" - "strconv" + "fmt" "github.com/rs/zerolog/log" "go.mondoo.com/cnquery/resources" - "go.mondoo.com/cnquery/resources/packs/core" "google.golang.org/api/cloudresourcemanager/v1" "google.golang.org/api/compute/v1" "google.golang.org/api/iam/v1" @@ -58,7 +57,7 @@ func (g *mqlGcpOrganization) init(args *resources.Args) (*resources.Args, GcpOrg return args, nil, nil } -func (g *mqlGcpOrganization) GetIamPolicy() ([]interface{}, error) { +func (g *mqlGcpOrganization) GetIamPolicy() (interface{}, error) { provider, err := gcpProvider(g.MotorRuntime.Motor.Provider) if err != nil { return nil, err @@ -82,29 +81,30 @@ func (g *mqlGcpOrganization) GetIamPolicy() ([]interface{}, error) { } name := "organizations/" + orgId - orgpolicy, err := svc.Organizations.GetIamPolicy(name, &cloudresourcemanager.GetIamPolicyRequest{}).Do() + policy, err := svc.Organizations.GetIamPolicy(name, &cloudresourcemanager.GetIamPolicyRequest{}).Do() if err != nil { return nil, err } - res := []interface{}{} - for i := range orgpolicy.Bindings { - b := orgpolicy.Bindings[i] - - mqlServiceaccount, err := g.MotorRuntime.CreateResource("gcp.resourcemanager.binding", - "id", name+"-"+strconv.Itoa(i), - "role", b.Role, - "members", core.StrSliceToInterface(b.Members), - ) - if err != nil { - return nil, err - } - res = append(res, mqlServiceaccount) + policyId := fmt.Sprintf("gcp.organization/%s/gcp.iamPolicy", orgId) + auditConfigs, err := auditConfigsToMql(g.MotorRuntime, policy.AuditConfigs, fmt.Sprintf("%s/auditConfigs", policyId)) + if err != nil { + return nil, err + } + + bindings, err := bindingsToMql(g.MotorRuntime, policy.Bindings, fmt.Sprintf("%s/bindings", policyId)) + if err != nil { + return nil, err } - return res, nil + return g.MotorRuntime.CreateResource("gcp.iamPolicy", + "id", policyId, + "auditConfigs", auditConfigs, + "bindings", bindings, + "version", policy.Version, + ) } -func (g *mqlGcpResourcemanagerBinding) id() (string, error) { +func (g *mqlGcpIamPolicyBinding) id() (string, error) { return g.Id() } diff --git a/resources/packs/gcp/project.go b/resources/packs/gcp/project.go index 4501b772b0..d6808e9676 100644 --- a/resources/packs/gcp/project.go +++ b/resources/packs/gcp/project.go @@ -3,6 +3,7 @@ package gcp import ( "context" "errors" + "fmt" "strconv" "time" @@ -105,7 +106,7 @@ func (g *mqlGcpProject) GetLabels() (map[string]interface{}, error) { return nil, errors.New("not implemented") } -func (g *mqlGcpProject) GetIamPolicy() ([]interface{}, error) { +func (g *mqlGcpProject) GetIamPolicy() (interface{}, error) { projectId, err := g.Id() if err != nil { return nil, err @@ -132,22 +133,23 @@ func (g *mqlGcpProject) GetIamPolicy() ([]interface{}, error) { return nil, err } - res := []interface{}{} - for i := range policy.Bindings { - b := policy.Bindings[i] + policyId := fmt.Sprintf("gcp.project/%s/gcp.iamPolicy", projectId) + auditConfigs, err := auditConfigsToMql(g.MotorRuntime, policy.AuditConfigs, fmt.Sprintf("%s/auditConfigs", policyId)) + if err != nil { + return nil, err + } - mqlServiceaccount, err := g.MotorRuntime.CreateResource("gcp.resourcemanager.binding", - "id", projectId+"-"+strconv.Itoa(i), - "role", b.Role, - "members", core.StrSliceToInterface(b.Members), - ) - if err != nil { - return nil, err - } - res = append(res, mqlServiceaccount) + bindings, err := bindingsToMql(g.MotorRuntime, policy.Bindings, fmt.Sprintf("%s/bindings", policyId)) + if err != nil { + return nil, err } - return res, nil + return g.MotorRuntime.CreateResource("gcp.iamPolicy", + "id", policyId, + "auditConfigs", auditConfigs, + "bindings", bindings, + "version", policy.Version, + ) } func (g *mqlGcpProject) GetCommonInstanceMetadata() (map[string]interface{}, error) { diff --git a/resources/packs/gcp/storage.go b/resources/packs/gcp/storage.go index 813e4df6de..15c6c15f27 100644 --- a/resources/packs/gcp/storage.go +++ b/resources/packs/gcp/storage.go @@ -2,13 +2,14 @@ package gcp import ( "context" + "encoding/json" "fmt" "strconv" "time" "go.mondoo.com/cnquery/resources" "go.mondoo.com/cnquery/resources/packs/core" - "google.golang.org/api/cloudresourcemanager/v3" + "google.golang.org/api/cloudresourcemanager/v1" "google.golang.org/api/iam/v1" "google.golang.org/api/option" "google.golang.org/api/storage/v1" @@ -161,7 +162,7 @@ func (g *mqlGcpProjectStorageServiceBucket) id() (string, error) { return fmt.Sprintf("gcp.project.storageService.bucket/%s/%s", projectId, id), nil } -func (g *mqlGcpProjectStorageServiceBucket) GetIamPolicy() ([]interface{}, error) { +func (g *mqlGcpProjectStorageServiceBucket) GetIamPolicy() (interface{}, error) { bucketName, err := g.Name() if err != nil { return nil, err @@ -183,25 +184,36 @@ func (g *mqlGcpProjectStorageServiceBucket) GetIamPolicy() ([]interface{}, error return nil, err } - policy, err := storeSvc.Buckets.GetIamPolicy(bucketName).Do() + iamPolicy, err := storeSvc.Buckets.GetIamPolicy(bucketName).Do() if err != nil { return nil, err } - res := []interface{}{} - for i := range policy.Bindings { - b := policy.Bindings[i] + data, err := iamPolicy.MarshalJSON() + if err != nil { + return nil, err + } - mqlServiceaccount, err := g.MotorRuntime.CreateResource("gcp.resourcemanager.binding", - "id", bucketName+"-"+strconv.Itoa(i), - "role", b.Role, - "members", core.StrSliceToInterface(b.Members), - ) - if err != nil { - return nil, err - } - res = append(res, mqlServiceaccount) + convPolicy := &cloudresourcemanager.Policy{} + if err := json.Unmarshal(data, convPolicy); err != nil { + return nil, err } - return res, nil + policyId := fmt.Sprintf("gcp.project.storageService.bucket/%s/gcp.iamPolicy", bucketName) + auditConfigs, err := auditConfigsToMql(g.MotorRuntime, convPolicy.AuditConfigs, fmt.Sprintf("%s/auditConfigs", policyId)) + if err != nil { + return nil, err + } + + bindings, err := bindingsToMql(g.MotorRuntime, convPolicy.Bindings, fmt.Sprintf("%s/bindings", policyId)) + if err != nil { + return nil, err + } + + return g.MotorRuntime.CreateResource("gcp.iamPolicy", + "id", policyId, + "auditConfigs", auditConfigs, + "bindings", bindings, + "version", convPolicy.Version, + ) }